专利摘要:
用以在電腦系統內整合記憶體與儲存階層(包括非揮發性記憶體層)的系統及方法被描述。在一個實施例中,PCMS記憶體裝置被用來作為該階層中的一個層,有時稱為「遠記憶體」。諸如DRAM的較高性能記憶體裝置放置於該遠記憶體前面且被用來遮蔽該遠記憶體的一些性能限制。這些較高性能記憶體裝置被稱為「近記憶體」。在一個實施例,該「近記憶體」被配置成以複數個不同操作模式操作,包括(但不限於)第一模式及第二模式,該第一模式中該近記憶體操作為用於該遠記憶體的記憶體快取,該第二模式中該近記憶體被指派至系統位址空間的第一位址範圍而該遠記憶體被指派至該系統位址空間的第二位址範圍,其中該第一範圍及該第二範圍表示整個系統位址空間。
公开号:TW201324148A
申请号:TW101132014
申请日:2012-09-03
公开日:2013-06-16
发明作者:Raj K Ramanujan;Rajat Agarwal;Glenn J Hinton
申请人:Intel Corp;
IPC主号:G06F12-00
专利说明:
實施具有不同操作模式之多階記憶體階層的設備與方法
本發明一般關於電腦系統的領域。較具體而言,本發明關於實施多階記憶體階層的設備與方法。
A.目前的記憶體及儲存器配置
電腦創新今日的一個限制因子為記憶體及儲存器技術。在習知的電腦系統中,系統記憶體(也稱為主記憶體、主要記憶體、可執行記憶體)典型由動態隨機存取記憶體(DRAM)加以實施。基於DRAM的記憶體即使當沒有記憶體讀取或寫入發生時仍消耗電源,因為其必須將內部電容器不斷充電。基於DRAM的記憶體為揮發性,其意指一旦電源被移除時DRAM記憶體中所儲存的資料被喪失。習知的電腦系統也仰賴多階的快取來改善性能。快取為一種高速記憶體,位在處理器與系統記憶體之間以用比從系統記憶體加以服務更快的方式來服務記憶體存取請求。此種快取典型由靜態隨機存取記憶體(SRAM)加以實施。快取管理協定可被用來確保最常存取的資料及指令被儲存於快取的一個階內,藉此減少記憶體存取交易的數量且改善性能。
關於大量儲存器(也稱為次級儲存器或磁碟儲存器),習知的大量儲存裝置典型包括磁性媒體(例如,硬碟機)、光學媒體(例如,光碟(CD)機、數位多功光碟(DVD)等)、全像媒體、及/或大量儲存快閃記憶體(例如,固態硬碟(SSD)、可移除式快閃硬碟等)。一般而言,這些儲存裝置被視為輸入/輸出(I/O)裝置,因為它們經由各種I/O轉接器(其實施各種I/O協定)由處理器加以存取。這些I/O轉接器及I/O協定消耗大量的電源且可能對該平台的晶粒區域及形狀因子具有顯著影響。具有有限電池壽命的可攜式或行動裝置(例如,膝上型電腦、小筆電、平板電腦、個人數位助理(PDA)、可攜式媒體播放器、可攜式遊戲裝置、數位攝影機、行動電話、智慧型手機、功能手機(feature phone)等)在未連接至永久電源供應時可能包括可移除式大量儲存裝置(例如,嵌入式多媒體記憶卡(eMMC)、安全數位(SD)記憶卡),該等可移除式大量儲存裝置典型經由低功率互連及I/O控制器耦接至處理器以便符合活動及閒置功率預算。
關於韌體記憶體(諸如開機記憶體(也稱為BIOS快閃)),習知的電腦系統典型使用快閃記憶體裝置以儲存時常被讀取但很少(或從不)被寫入的持久性系統資訊。例如,由處理器所執行以在開機程序(基本輸入及輸出系統(BIOS)影像)期間初始化關鍵系統組件的初始指令典型被儲存於快閃記憶體裝置中。市場中目前可用的快閃記憶體裝置一般具有有限速率(例如,50 MHz)。此速率進一步被用於讀取協定的額外負擔所降低(例如,2.5 MHz)。為了加快BIOS執行速率,習知的處理器一般在該開機程序的可延伸韌體介面前(Pre-Extensible Firmware Interface,PEI)階段期間快取BIOS碼的一部分。處理器快取的大小對該PEI階段中所使用的BIOS碼(也稱為「PEI BIOS碼」)之大小定下限制。
B.相變記憶體(PCM)及相關技術
相變記憶體(PCM),有時也稱為相變隨機存取記憶體(PRAM或PCRAM)、PCME、Ovonic Unified Memory、或Chalcogenide RAM(C-RAM),為一種類型的非揮發性電腦記憶體,其利用硫族化合物玻璃的獨特作用。由於電流的通過所產生的熱,硫族化合物玻璃可在二個狀態之間切換:結晶及非晶。PCM的最新版本可達成二個額外的不同狀態。
PCM提供比快閃更高的性能,因為PCM的記憶體元件可被較快速切換,寫入(改變個別位元至1或者0)可被完成而無需首先抹除格的整個區塊,且來自寫入的退化較慢(PCM裝置可存活大約1億個寫入週期;PCM退化是由於程式化期間的熱膨脹、金屬(與其他材料)遷移、及其他機制)。
在下列發明內容中,諸如邏輯實施方式、運算碼(用來指明運算元)、資源分割/共享/複製實施方式、系統組件的類型與相互關係、及邏輯分割/整合選擇的許多特定細節被陳述以便提供本發明的較徹底理解。然而將由熟習本技藝之人士所理解的是,本發明可在沒有此種特定細節的情況下加以實行。在其他例子中,控制結構、閘位準電路及完整軟體指令序列未被詳細顯示以便不模糊本發明。那些熟習本技藝之人士藉由所含括的發明內容將能夠實施適當功能而不用過度實驗。
說明書中對「一個實施例」、「實施例」、「範例實施例」等的參照指出所述實施例可包括特定特徵、結構、或特性,但每個實施例可能不必然包括該特定特徵、結構、或特性。此外,此種詞語不必然意指相同實施例。進一步而言,當特定特徵、結構、或特性針對實施例加以描述時,被認定的是,針對其他實施例(無論是否明確描述)實現此種特徵、結構、或特性是在熟習本技藝之人士的了解內。
在下列發明內容及申請專利範圍中,術語「耦接」及「連接」與它們的派生詞可被使用。將被理解的是,這些術語非意圖作為彼此的同義詞。「耦接」被用來指出二或更多個元件(其可能或可能不處於互相直接實體或電氣接觸)互相配合或互動。「連接」被用來指出在二或更多個互相耦接的元件之間建立通訊。
括號中的文字以及有虛線邊緣(例如,大劃線、短劃線、點劃線、點)的方塊有時在此處被用來示出將額外特徵新增至本發明實施例的任意的操作/組件。然而,此種符號不應被拿來意指這些是僅有的選項或任意的操作/組件,及/或有實線邊緣的方塊在本發明某些實施例中不是任意的。
序言
記憶體容量及性能要求隨著處理器核心及新使用模型(諸如虛擬化)的數量增加而持續增加。此外,記憶體功率及成本已經分別變成電子系統的整體功率及成本之重要成分。
本發明的一些實施例藉由聰明地細分記憶體技術間的性能要求及容量要求來解決以上挑戰。此方法的重點為,以相對小量的相對高速記憶體(諸如DRAM)提供性能,同時藉由使用顯著較便宜與較密集的非揮發性隨機存取記憶體(NVRAM)來實施該系統記憶體的大部份。以下所述之本發明實施例定義了使階層式記憶體子系統組織能夠使用NVRAM的平台配置。在該記憶體階層中使用NVRAM也致能新的使用,諸如擴充的開機空間及大量儲存實施方式,如以下加以詳細描述。
第1圖示出了依據本發明的實施例之快取及系統記憶體配置。具體而言,第1圖顯示記憶體階層,其包括一組內部處理器快取120、當作遠記憶體快取的「近記憶體」121(其可包括內部快取106及外部快取107至109兩者)、及「遠記憶體」122。在本發明一些實施例中可被用於「遠記憶體」的一個特定類型的記憶體為非揮發性隨機存取記憶體(「NVRAM」)。這樣,NVRAM的概要被提供於下,接著是遠記憶體及近記憶體的概要。
A.非揮發性隨機存取記憶體(「NVRAM」)
對NVRAM有許多可能的技術選擇,包括PCM、相變記憶體與切換器(PCMS)(後者為前者的較特定實施方式)、位元組可定址持久性記憶體(BPRAM)、儲存級記憶體(SCM)、通用記憶體、Ge2Sb2Te5、可程式金屬化格(PMC)、電阻性記憶體(RRAM)、RESET(非晶)格、SET(結晶)格、PCME、奧夫辛斯基記憶體、鐵電記憶體(也稱為聚合物記憶體及聚(N-乙烯基咔唑))、鐵磁記憶體(也稱為自旋電子學、SPRAM(自旋轉移力矩RAM)、STRAM(自旋穿隧RAM)、磁阻記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM))、及半導體-氧化物-氮化物-氧化物-半導體(SONOS,也稱為介電記憶體)。
NVRAM具有下列特性:(1)其即使在電源被移除時維持其內容,類似於固態硬碟(SSD)中所使用的快閃記憶體,且不同於揮發性的SRAM及DRAM;(2)比諸如DRAM及DRAM的揮發性記體體更低的功率消耗;(3)類似於DRAM及DRAM的隨機存取(也稱為隨機可定址);(4)在比SSD中出現的快閃(其僅可一次重寫及抹除一個「區塊」-針對NOR快閃在大小上最小64 KByte且針對NAND快閃最小16 KByte)更低位準的粒度(例如,位元組位準)可重寫及可抹除;(5)用來作為系統記憶體且指派至所有或一部分的該系統記憶體位址空間;(6)能夠經由匯流排使用交易協定(支援交易識別符(ID)以區分不同交易而使得那些交易可以亂序地完成的協定)耦接至該處理器且容許以小到足以支援該NVRAM操作為系統記憶體的粒度位準存取(例如,快取線大小諸如64或128位元組)。例如,該匯流排可為記憶體匯流排(例如,DDR匯流排諸如DDR3、DDR4等),經由該記憶體匯流排執行一種相對於正常被使用的非交易協定的交易協定。作為另一實例,該匯流排可能為一種經由其執行交易協定(本地交易協定)的匯流排,諸如PCI快速(PCIE)匯流排、桌面管理介面(DMI)匯流排、或任何其他類型的利用交易協定及夠小交易酬載大小(例如,快取線大小諸如64或128位元組)之匯流排;及(7)下列的一或更多者:a)比非揮發性記憶體/儲存器技術(諸如快閃)更快的寫入速率;b)非常高的讀取速率(比快閃更快且接近或等同於DRAM讀取速率);c)直接可寫入(而非在寫入資料以前要求抹除(以1s重寫),像是SSD中所使用的快閃記憶體);d)在失效以前較大量的寫入(超過SSD中所使用的開機ROM及快閃);及/或如以上所提及,對比於快閃記憶體,其必須被一次重寫及抹除整個「區塊」,在任何給定實施方式中存取NVRAM的粒度之位準可能取決於特定記憶體控制器及特定記憶體匯流排或其他類型的該NVRAM被耦接的匯流排。例如,在NVRAM被用來作為系統記憶體的一些實施方式中,該NVRAM可能以快取線的粒度加以存取(例如,64位元組或128位元組快取線),雖然固有能力以位元組的粒度加以存取,因為快取線為該記憶體子系統存取記憶體的位準。因此,當NVRAM被部署於記憶體子系統時,其可能以與相同記憶體子系統中所使用之DRAM(例如,「近記憶體」)相同的粒度位準加以存取。即使如此,該記憶體控制器及記憶體匯流排或其他類型的匯流排對NVRAM的存取之粒度位準係小於快閃所使用之區塊大小的粒度位準及I/O子系統的控制器與匯流排之存取大小的粒度位準。
NVRAM也可併入磨損平衡演算法以考慮到事實上在遠記憶體位準的儲存格開始在數個寫入存取以後磨損,尤其是大量的寫入可能發生在諸如系統記憶體實施方式中。由於高週期計數區塊最有可能以此方式磨損,藉由以低週期計數區塊交換高週期計數區塊的位址,磨損平衡將寫入散佈遍及該遠記憶體格。注意到大部份的位址交換典型對應用程式是通透(transparent),因為其由硬體、較低階軟體(例如,低階驅動程式或作業系統)、或該二者的組合加以處理。
B.遠記憶體
本發明的一些實施例之遠記憶體122以NVRAM加以實施,但不必然限於任何特定記憶體技術。遠記憶體122在該記憶體/儲存器階層中的其特性及/或其應用方面有別於其他指令及資料記憶體/儲存器技術。例如,遠記憶體122不同於:靜態隨機存取記憶體(SRAM),其可被用於第0階及第1階內部處理器快取101a至b、102a至b、103a至b、及104a至b(分別專用於處理器核心101至104的各者)、以及該等處理器核心所共享的低階快取(LLC)105;動態隨機存取記憶體(DRAM),配置作為處理器100外部的快取106(例如,在與處理器100相同的晶粒上)及/或配置作為該處理器外部的一或更多個快取107至109(例如,在與處理器100相同或不同的封裝中);及快閃記憶體/磁碟/光碟,應用作為大量儲存器(未顯示);及記憶體,諸如快閃記憶體或其他唯讀記憶體(ROM),應用作為韌體記憶體(其可稱為開機ROM、BIOS快閃、及/或TPM快閃)。(未顯示)。
遠記憶體122可被用來作為指令及資料儲存器,其對比於應用作為大量儲存器的快閃/磁碟/光碟由處理器100直接可定址且能夠充分跟上處理器100。此外,如以上加以討論及以下加以詳細討論,遠記憶體122可被放置於記憶體匯流排上且可與記憶體控制器直接通訊,該記憶體控制器接著與處理器100直接通訊。
遠記憶體122可與其他指令及資料儲存器技術(例如,DRAM)組合以形成混合記憶體(也稱為共置PCM及DRAM;第一階記憶體及第二階記憶體;FLAM(快閃及DRAM))。注意到至少一些以上技術(包括PCM/PCMS)可代替系統記憶體被用於大量儲存器或除了該系統記憶體以外被用於大量儲存器且不需要在以此方式應用時為由該處理器隨機可存取、位元組可存取或直接可定址。
為了解說的便利,應用的大部份其餘部份將參照「NVRAM」或較具體而言「PCM」、或「PCMS」作為遠記憶體122的技術選擇。這樣,術語NVRAM、PCM、PCMS、及遠記憶體可在下列討論中互換地使用。然而應如以上所討論加以了解的是,不同技術也可被用於遠記憶體。並且,該NVRAM不限於用作遠記憶體。
C.近記憶體
「近記憶體」121為被配置於遠記憶體122前方的中間階的記憶體,其具有相對於遠記憶體的較低讀取/寫入存取潛時及/或較對稱的讀取/寫入存取潛時(即,具有大致等同於寫入時間的讀取時間)。在一些實施例中,近記憶體121具有比遠記憶體122顯著更低的寫入潛時但具有類似的(例如,稍低或等於)讀取潛時;例如近記憶體121可為諸如揮發性隨機存取記憶體(VRAM)的揮發性記憶體且可包含DRAM或其他高速電容式記憶體。然而注意到本發明的基本原理不限於這些特定記憶體類型。額外地,近記憶體121可具有相對較低的密度及/或可能比遠記憶體122在製造上更昂貴。
在一個實施例中,近記憶體121被配置於遠記憶體122與內部處理器快取120之間。在以下所述的一些實施例中,近記憶體121被配置作為一或更多個記憶體側快取(MSC)107至109以遮蔽該遠記憶體的性能及/或使用限制,包括例如讀取/寫入潛時限制及記憶體退化限制。在這些實施方式中,MSC 107至109與遠記憶體122的組合以近似、等同或超越僅使用DRAM作為系統記憶體的系統之性能位準來操作。如以下加以詳細討論,儘管顯示作為第1圖中的「快取」,近記憶體121可包括其中它執行其他角色(無論是執行除了快取的角色以外或者代替執行快取的角色)的模式。
近記憶體121可位於處理器晶粒上(作為快取106)及/或位於該處理器晶粒外部(作為快取107至109)(例如,在位於CPU封裝上的不同晶粒上、位於CPU封裝的外側具有對該CPU封裝的高寬頻鏈結、例如在記憶體雙線記憶體模組(DIMM)、豎板/背板、或電腦主機板上)。近記憶體121可被耦接成使用單個或多個高寬頻鏈結與處理器100通訊,諸如DDR或其他交易高寬頻鏈結(如以下加以詳細描述)。
範例系統記憶體分配設計
第1圖示出在本發明實施例中各階的快取101至109如何被配置於系統實體位址(SPA)空間116至119。如所提及,此實施例包含了具有一或更多個核心101至104的處理器100,而各個核心具有其本身的專用高階快取(L0)101a至104及中階快取(MLC)(L1)101b至104b。處理器100也包括共享LLC 105。這些各種快取階的操作被充分理解且此處將不會詳細描述。
第1圖中所示的快取107至109可能專用於特定系統記憶體位址範圍或一組不連續位址範圍。例如,快取107被專用於當作系統記憶體位址範圍# 1 116的MSC且快取108與109被專用於當作系統記憶體位址範圍# 2 117與# 3 118的非重疊部分之MSC。後者實施方式可被用於其中處理器100所使用之SPA空間被交錯至快取107至109(例如,當配置作為MSC時)所使用之位址空間的系統。在一些實施例中,此後者位址空間被稱為記憶體通道位址(MCA)空間。在一個實施例中,內部快取101a至106針對整個SPA空間實施快取操作。
此處所使用的系統記憶體為一種處理器100上所執行之軟體可見及/或直接可執行的記憶體;儘管快取記憶體101a至109可能以對該軟體通透的方式操作,在意義上它們不形成該系統位址空間的直接可定址部分,但該等核心也可支援執行指令以容許軟體提供對一些或所有該等快取的一些控制(配置、策略、提示等)。系統記憶體細分成區116至119可隨著系統配置程序的一部份加以手動實施(例如,由系統設計者)及/或可由軟體加以自動實施。
在一個實施例中,系統記憶體區116至119藉由使用遠記憶體(例如,PCM)加以實施且在一些實施例中藉由使用被配置作為系統記憶體的近記憶體。系統記憶體位址範圍# 4表示藉由使用諸如DRAM的較高速記憶體(其可為被配置於系統記憶體模式(相對於快取模式)中的近記憶體)加以實施的位址範圍。
第2圖示出了依據本發明實施例之記憶體/儲存器階層140及近記憶體144與NVRAM的不同可配置的操作模式。記憶體/儲存器階層140具有多個階,包括(1)快取階150,其可包括處理器快取150A(例如,第1圖中的快取101a至105)及任意的作為用於遠記憶體的快取之近記憶體150B(如此處所述在某些操作模式中),(2)系統記憶體階151,其可在近記憶體存在時包括遠記憶體151B(例如,諸如PCM的NVRAM)(或在近記憶體不存在時只有作為系統記憶體的NVRAM 174)、及任意的操作為系統記憶體的近記憶體151A(如此處所述在某些操作模式中),(3)大量儲存器階152,其可包括快閃/磁性/光學大量儲存器152B及/或NVRAM大量儲存器152A(例如,NVRAM 142的一部分);及(4)韌體記憶體階153,其可包括BIOS快閃170及/或BIOS NVRAM 172以及任意的可信任平台模組(TPM)NVRAM 173。
如所示,近記憶體144可被實施以用各種不同模式操作,包括:第一模式,在其中它操作為用於遠記憶體的快取(用於FM的快取之近記憶體150B);第二模式,在其中它操作為系統記憶體151A且佔用該SPA空間的一部分(有時稱為近記憶體「直接存取」模式);及一或更多個額外的操作模式,諸如草稿型記憶體192或寫入緩衝器193。在本發明的一些實施例中,該近記憶體為可分割,此處各個分割可同時以不同的一個支援模式操作;且不同實施例可由硬體(例如,熔絲、針腳)、韌體、及/或軟體(例如,經由MSC控制器124內的一組可程式化範圍暫存器,在該等暫存器內例如可儲存不同二進位碼以識別各個模式及分割)來支援該等分割的配置(諸如,大小、模式)。
第2圖中的系統位址空間A 190被用來示出在近記憶體被配置作為用於遠記憶體的MSC 150B時的操作。在此配置中,系統位址空間A 190表示整個系統位址空間(且系統位址空間B 191不存在)。替代地,系統位址空間B 191被用來顯示在所有或一部分的近記憶體被指派該系統位址空間的一部分時的實施方式。在此實施例中,系統位址空間B 191表示被指派給近記憶體151A的系統位址空間的範圍且系統位址空間A 190表示被指派給NVRAM 174的系統位址空間的範圍。
此外,在當作用於遠記憶體的快取150B時,近記憶體144可在MSC控制器124的控制下以各種子模式操作。在這些模式的各者中,近記憶體位址空間(NMA)對軟體通透,在意義上該近記憶體不形成該系統位址空間的直接可定址部分。這些模式包括但不限於下列:
(1)寫回快取模式:在此模式中,所有或部分的當作FM快取的近記憶體150B被用來作為用於NVRAM遠記憶體(FM)151B的快取。儘管在寫回模式中,每個寫入操作最初被導向作為用於FM的近記憶體150B(假設該寫入被導向的快取線存在於該快取中)。僅在作為用於FM的快取之近記憶體150B內的快取線待被另一快取線替換時,才實施對應的寫入操作以更新NVRAM FM 151B(對比於以下所述的寫通模式,其中各個寫入操作被立即傳遞至NVRAM FM 151B)。
(2)近記憶體略過模式:在此模式中,所有讀取及寫入會略過當作FM快取的NM 150B且直接到NVRAM FM 151B。此種模式可能例如在應用不是快取友善或者需要資料以快取線的粒度提交至持久性時被使用。在一個實施例中,處理器快取150A所實施的快取與當作FM快取的NM 150B互相獨立地操作。結果,資料可被快取於當作FM快取的NM 150B中,其未被快取於處理器快取150A中(且在一些情況中可能不允許其被快取於處理器快取150A中)且反之亦然。因此,可被指定為「不可快取」於該等處理器快取中的某些資料可被快取於當作FM快取的NM 150B中。
(3)近記憶體讀取快取寫入略過模式:此為以上模式的變型,此處從NVRAM FM 151B讀取快取該持久性資料被容許(即,針對唯讀操作該持久性資料被快取於作為用於遠記憶體的快取之近記憶體150B中)。這在大部份的該持久性資料為「唯讀」且該應用的使用為快取友善時是有用的。
(4)近記憶體讀取快取寫通模式:此為該近記憶體讀取快取寫入略過模式的變型,此處除了讀取快取以外,寫入命中也被快取。每個對作為用於FM的快取之近記憶體150B的寫入會造成對FM 151B的寫入。因此,由於該快取的寫通性質,快取線持久性仍被保證。
當以近記憶體直接存取模式作用時,所有或部分的作為系統記憶體的近記憶體151A為軟體直接可見且形成該SPA空間的一部份。此種記憶體可完全在軟體的控制下。此種設計可產生用於軟體的不均勻記憶體位址(NUMA)記憶體領域,此處其相對於NVRAM系統記憶體174從近記憶體144得到較高性能。藉由實例,且非限制,此種使用可針對某些高性能運算(HPC)及圖形應用(其需要對某些資料結構的極快存取)加以採用。
在替代實施例中,該近記憶體直接存取模式藉由「探測」近記憶體中的某些快取線(即,具有也被同時儲存於NVRAM 142中的資料之快取線)來加以實施。此種探測可在較大、多路、集合相聯(set-associative)快取中有效地完成。
第2圖也示出NVRAM 142的一部分可被用來作為韌體記憶體。例如,BIOS NVRAM 172部分可被用來儲存BIOS影像(代替儲存該BIOS資訊於BIOS快閃170中或除了儲存該BIOS資訊於BIOS快閃170中以外)。BIOS NVRAM部分172可為該SPA空間的一部分且係由處理器核心101至104上所執行的軟體直接可定址,而BIOS快閃170係經由I/O子系統115可定址。作為另一實例,可信任平台模組(TPM)NVRAM 173部分可被用來保護敏感性系統資訊(例如,加密金鑰)。
因此,如所示,NVRAM 142可被實施成以各種不同模式操作,包括作為遠記憶體151B(例如,當近記憶體144存在/操作時,無論是否該近記憶體經由MSC控制124當作用於該FM的快取(在快取101A至5以後且沒有MSC控制124時直接存取));僅NVRAM系統記憶體174(非作為遠記憶體,因為沒有近記憶體存在/操作;且在沒有MSC控制124的情況下存取);NVRAM大量儲存器152A;BIOS NVRAM 172;及TPM NVRAM 173。儘管不同實施例可能以不同方式指明NVRAM模式,第3圖描述解碼表333的使用。
第3圖示出其上可實施本發明實施例的範例電腦系統300。電腦系統300包括處理器310及具有NVRAM 142(用於系統記憶體、大量儲存器兩者及任意的韌體記憶體)的記憶體/儲存器子系統380。在一個實施例中,NVRAM 142包含電腦系統300所使用的整個系統記憶體及儲存器階層以供儲存資料、指令、狀態、及持久性與非持久性資訊。如先前所討論,NVRAM 142可被配置成實施典型記憶體中的角色及系統記憶體、大量儲存器、及韌體記憶體、TPM記憶體、及相似者的儲存器階層。在第3圖的實施例中,NVRAM 142被分割成FM 151B、NVRAM大量儲存器152A、BIOS NVRAM 173、及TPM NVRAM173。具有不同角色的儲存器階層也被考量且NVRAM 142的應用不限於以上所述的角色。
藉由實例,在作為用於FM的快取之近記憶體150B處於該寫回快取時的操作被描述。在一個實施例中,儘管作為用於FM的快取之近記憶體150B處於以上所提及的寫回快取模式,讀取操作將首先抵達MSC控制器124,該控制器將實施查找以決定是否所請求資料存在於當作用於FM的快取之近記憶體150B中(例如,利用標籤快取342)。如果存在,其將經由I/O子系統115送回該資料至請求的CPU、核心101至104或I/O裝置。如果該資料不存在,MSC控制器124將送出該請求以及該系統記憶體位址至NVRAM控制器332。NVRAM控制器332將使用解碼表333來將該系統記憶體位址轉譯成NVRAM實體裝置位址(PDA)且將該讀取操作導向遠記憶體151B的這個區。在一個實施例中,解碼表333包括NVRAM控制器332用來在系統記憶體位址與NVRAM PDA間轉譯的位址間接表(AIT)成分。在一個實施例中,該AIT被更新作為被實施以分配記憶體存取操作的磨損平衡演算法的一部份,且藉此減少NVRAM FM 151B上的磨損。替代地,該AIT可為被儲存於NVRAM控制器332內的不同表。
在從NVRAM FM 151B接收到所請求資料的時候,NVRAM控制器332將送回該所請求資料至MSC控制器124(其將儲存該資料於當作FM快取的MSC近記憶體150B)且也經由I/O子系統115送出該資料至請求的處理器核心101至104、或I/O裝置。對此資料的後續請求可從當作FM快取的近記憶體150B加以直接服務直到其由一些其他NVRAM FM資料所替換。
如所提及,在一個實施例中,記憶體寫入操作也首先到MSC控制器124,該控制器將它寫入至當作FM快取的MSC近記憶體150B中。在寫回快取模式中,當寫入操作被接收到時該資料可能未被直接送至NVRAM FM 151B。例如,僅在當作FM快取的MSC近記憶體150B中的位置(該資料被儲存於其中)必須被重新用來儲存用於不同系統記憶體位址的資料時,該資料可被送至NVRAM FM 151B。當此發生時,MSC控制器124注意到該資料目前未在NVRAM FM 151B中且將因此從當作FM快取的近記憶體150B擷取它並將它送至NVRAM控制器332。NVRAM控制器332查找用於該系統記憶體位址的PDA且接著寫入該資料至NVRAM FM 151B。
在第3圖中,NVRAM控制器332被顯示成藉由使用三個不同線來連接至FM 151B、NVRAM大量儲存器152A、及BIOS NVRAM 172。然而這不必然意指有三個不同實體匯流排或通訊通道來連接NVRAM控制器332至NVRAM 142的這些部分。反而,在一些實施例中,共用記憶體匯流排或其他類型的匯流排(諸如以下參照第4A至M圖加以描述)被用來將NVRAM控制器332通訊耦接至FM 151B、NVRAM大量儲存器152A、及BIOS NVRAM 172。例如,在一個實施例中,第3圖中的三個線表示匯流排,諸如記憶體匯流排(例如,DDR 3、DDR 4等匯流排),經由該匯流排NVRAM控制器332實施交易協定以與NVRAM 142通訊。NVRAM控制器332也可與NVRAM 142通訊經由支援本地交易協定的匯流排(諸如PCI快速匯流排、桌面管理介面(DMI)匯流排)、或任何其他類型的利用交易協定及夠小交易酬載大小(例如,快取線大小諸如64或128位元組)之匯流排。
在一個實施例中,電腦系統300包括整合記憶體控制器(IMC)331,該IMC實施對處理器處理器310的中央記憶體存取控制,該IMC被耦接至:1)記憶體側快取(MSC)控制器124以控制對當作遠記憶體快取的近記憶體(NM)150B的存取;及2)NVRAM控制器332以控制對NVRAM 142的存取。儘管在第3圖中示出為不同單元,MSC控制器124及NVRAM控制器332可在邏輯上形成IMC 331的一部份。
在所示的實施例中,MSC控制器124包括一組範圍暫存器336,其指明了使用於當作用於遠記憶體快取的NM 150B中的操作模式(例如,以上所述的寫回快取模式、近記憶體略過模式等)。在所示實施例中,DRAM 144被用來作為用於當作用於遠記憶體快取的NM 150B之記憶體技術。回應於記憶體存取請求,MSC控制器124可決定(取決於範圍暫存器中所指明的操作模式)是否該請求可從當作用於FM的快取之NM 150B加以服務或者是否該請求必須被送至NVRAM控制器332,該控制器可接著從NVRAM 142的遠記憶體(FM)部分151服務該請求。
在NVRAM 142以PCMS加以實施的實施例中,NVRAM控制器332為一種以符合PCMS技術的協定來實施存取的PCMS控制器。如先前所討論,PCMS記憶體固有能夠以位元組的粒度加以存取。不過,NVRAM控制器332可能以諸如快取線(例如,64位元或128位元快取線)的較低位準的粒度或者任何其他位準的符合該記憶體子系統的粒度來存取基於PCMS的遠記憶體151B。本發明的基本原理不限於用以存取基於PCMS的遠記憶體151B之任何特定位準的粒度。然而一般而言,當基於PCMS的遠記憶體151B被用來形成該系統位址空間的一部份時,粒度的位準將高於傳統用於其他非揮發性儲存器技術(諸如快閃)的位準,該儲存器技術僅可能以「區塊」的位準實施重寫及抹除操作(針對NOR快閃在大小上最小64 KByte且針對NAND快閃最小16 KByte)。
在所示實施例中,NVRAM控制器332可讀取配置資料以從解碼表333建立用於NVRAM 142的先前所述的模式、大小等、或者替代地可仰賴從IMC 331及I/O子系統315所傳送的解碼結果。例如,在任一製造時間或在該欄位中,電腦系統300可程式化解碼表333以標記NVRAM 142的不同區作為系統記憶體、經由SATA介面顯露的大量儲存器、經由USB大容量傳輸(Bulk Only Transport,BOT)介面顯露的大量儲存器、支援TPM儲存器的加密儲存器、除了這些以外。存取被引導到NVRAM裝置142的不同分割的手段係經由解碼邏輯。例如,在一個實施例中,各個分割的位址範圍在解碼表333中加以定義。在一個實施例中,當IMC 331接收到存取請求時,該請求的目標位址被解碼以揭示是否該請求被導向記憶體、NVRAM大量儲存器、或I/O。如果其為記憶體請求,IMC 331及/或MSC控制器124從該目標位址進一步決定是否該請求被導向作為用於FM的快取之NM 150B或導向FM 151B。針對FM 151B存取,該請求被轉送至NVRAM控制器332。如果此請求被導向I/O(例如,非儲存器及儲存器I/O裝置),IMC 331傳送該請求至I/O子系統115。I/O子系統115進一步解碼該位址以決定是否該位址指向NVRAM大量儲存器152A、BIOS NVRAM 172、或其他非儲存器或儲存器I/O裝置。如果此位址指向NVRAM大量儲存器152A或BIOS NVRAM 172,I/O子系統115轉送該請求至NVRAM控制器332。如果此位址指向TPM NVRAM 173,I/O子系統115傳送該請求至TPM 334以實施安全存取。
在一個實施例中,轉送至NVRAM控制器332的各個請求附有屬性(也稱為「交易類型」)以指出存取的類型。在一個實施例中,NVRAM控制器332可模仿用於所請求的存取類型的存取協定,使得該平台的其餘者仍然不知道NVRAM 142在該記憶體及儲存器階層中所實施的多個角色。在替代實施例中,NVRAM控制器332可實施對NVRAM 142的記憶體存取,無論它為何種交易類型。將理解的是,解碼路徑可能不同於以上所述者。例如,IMC 331可解碼存取請求的目標位址且決定是否其被導向NVRAM 142。如果其被導向NVRAM 142,IMC 331依據解碼表333產生屬性。根據該屬性,IMC 331接著轉送該請求至適當的下游邏輯(例如,NVRAM控制器332及I/O子系統315)以實施所請求的資料存取。在又一實施例中,如果對應的屬性未從上游邏輯(例如,IMC 331及I/O子系統315)加以傳送,NVRAM控制器332可解碼該目標位址。其他解碼路徑也可被實施。
新記憶體架構的存在(諸如此處所述者)提供豐富的新可能性。儘管以較大的長度進一步於下加以討論,一些該等可能性於下快速立即地加以強調。
依據一個可能的實施方式,NVRAM 142當作系統記憶體中的傳統DRAM技術的總替換或補充。在一個實施例中,NVRAM 142表示第二階系統記憶體之引入(例如,該系統記憶體可被視為具有第一階系統記憶體及第二階系統記憶體,該第一階系統記憶體包含作為快取的近記憶體150B(DRAM裝置340的一部份),該第二階系統記憶體包含遠記憶體(FM)151B(NVRAM 142的一部份))。
依據一些實施例,NVRAM 142當作快閃/磁性/光學大量儲存器152B的總替換或補充。如先前所述,在一些實施例中,即使NVRAM 152A能夠有位元組級可定址性,NVRAM控制器332仍可能以多個位元組的區塊來存取NVRAM大量儲存器152A,取決於實施方式(例如,64KByte、128KByte等)。其中資料由NVRAM控制器332從NVRAM大量儲存器152A加以存取的特定方式可能對處理器310所執行的軟體是通透。例如,即使NVRAM大量儲存器152A可能以不同於快閃/磁性/光學大量儲存器152B的方式加以存取,作業系統仍可視NVRAM大量儲存器152A為標準大量儲存器裝置(例如,序列ATA硬碟機或其他標準形式的大量儲存器裝置)。
在NVRAM大量儲存器152A當作快閃/磁性/光學大量儲存器152B的總替換之實施例中,不必然使用儲存器驅動程式於區塊可定址的儲存器存取。從儲存器存取移除儲存器驅動程式額外負擔可增加存取速率及節省電源。在想要NVRAM大量儲存器152A對該OS及/或應用而言似乎為區塊可存取並與快閃/磁性/光學大量儲存器152B無區分的替代實施例中,模仿的儲存器驅動程式可被用來顯露區塊可存取的介面(例如,通用序列匯流排(USB)大容量傳輸(BOT)1.0;序列先進技術附件(SATA)3.0;及相似者)給該軟體以供存取NVRAM大量儲存器152A。
在一個實施例中,NVRAM 142當作韌體記憶體(諸如BIOS快閃362及TPM快閃372,在第3圖中以虛線加以示出以指出它們為任意的)的總替換或補充。例如,NVRAM 142可包括BIOS NVRAM 172部分以補充或替換BIOS快閃362且可包括TPM NVRAM 173部分以補充或替換TPM快閃372。韌體記憶體也可儲存TPM 334用來保護敏感性系統資訊(例如,加密金鑰)的系統持久性狀態。在一個實施例中,使用NVRAM 142於韌體記憶體會移除第三方快閃部份儲存對系統操作關鍵的碼及資料之需要。
繼續接著是第3圖的系統之討論,在一些實施例中,電腦系統100的架構可包括多個處理器,儘管為了簡單起見單一處理器310被示出於第3圖中。處理器310可為任何類型的資料處理器,包括一般用途或特殊用途中央處理單元(CPU)、應用特定積體電路(ASIC)或數位信號處理器(DSP)。例如,處理器310可為一般用途處理器,諸如CoreTM i3、i5、i7、2 Duo and Quad、XeonTM、或ItaniumTM處理器,其所有可得自加州聖塔克拉拉的英特爾公司。替代地,處理器310可來自另一公司,諸如加州桑尼維爾的ARM控股有限公司、加州桑尼維爾的MIPS科技公司等。處理器310可為特殊用途處理器,諸如例如網路或通訊處理器、壓縮引擎、圖形處理器、共同處理器、嵌入式處理器、或相似者。處理器310可被實施於一或更多個封裝內所含括的一或更多個晶片上。處理器310可為一或更多個基板的一部份及/或可藉由使用來數個製程技術(諸如例如BiCMOS、CMOS、或NMOS)的任一者來實施於一或更多個基板上。在第3圖所示的實施例中,處理器310具有系統單晶片(SOC)配置。
在一個實施例中,處理器310包括整合圖形單元311,該整合圖形單元包括用以執行圖形命令(諸如3D或2D圖形命令)的邏輯。儘管本發明的實施例不限於任何特定整合圖形單元311,在一個實施例中,圖形單元311能夠執行工業標準圖形命令,諸如那些由Open GL及/或Direct X應用程式介面(API)(例如,OpenGL 4.1及Direct X 11)所指明者。
處理器310也可包括一或更多個核心101至104,儘管再次為了清楚起見單一核心被示出於第3圖中。在許多實施例中,核心101至104包括內部功能區塊,諸如一或更多個執行單元、引退單元、一組一般用途及特定暫存器等。如果該等核心為多執行緒或超執行緒,則各個硬體執行緒也被視為「邏輯」核心。核心101至104可能在架構及/或指令集方面為同質或異質。例如,一些該等核心可為依序而其他為亂序。作為另一實例,該等核心的二或更多者可能能夠執行相同指令集,而其他可能能夠執行僅僅該指令集的子集或不同指令集。
處理器310也可包括一或更多個快取,諸如可被實施作為SRAM及/或DRAM的快取313。在未被顯示的許多實施例中,快取313以外的額外快取被實施,使得快取的多個階存在於核心101至104中的執行單元與記憶體裝置150B和151B之間。例如,該組共用快取單元可包括高階快取(諸如第1階(L1)快取)、中階快取(諸如第2階(L2)、第3階(L3)、第4階(L4)、或其他階的快取)、(LLC)、及/或其不同組合。在不同實施例中,快取313可用不同方式加以分配且可能在不同實施例中為許多不同大小的一者。例如,快取313可為8百萬位元組(MB)快取、16 MB快取等。額外地,在不同實施例中該快取可為直接映射快取、全相聯快取、多路集合相聯快取、或具有另一類型的映射之快取。在包括多個核心的其他實施例中,快取313可包括所有核心之間共享的一個大型部分或可被分成數個不同功能切片(例如,每個核心一個切片)。快取313也可包括所有核心之間共享的一個部分及每個核心的不同功能切片之數個其他部分。
處理器310也可包括本地代理器314,其包括那些協調及操作核心101至104的組件。本地代理器單元314可包括例如功率控制單元(PCU)及顯示單元。該PCU可能為或可能包括調節核心101至104與整合圖形單元311的功率狀態所需之邏輯及組件。該顯示單元係用以驅動一或更多個外部連接的顯示器。
如所提及,在一些實施例中,處理器310包括整合記憶體控制器(IMC)331、近記憶體快取(MSC)控制器、及NVRAM控制器332,其所有可能在與處理器310相同的晶片上,或在連接至處理器310的不同晶片上及/或封裝上。DRAM裝置144可能在與IMC 311和MSC控制器124相同的晶片或不同的晶片上;因此,一個晶片可具有處理器310及DRAM裝置144;一個晶片可具有處理器310及另一DRAM裝置144(這些晶片可能在相同或不同封裝中);一個晶片可具有核心101至104及另一IMC 311、MSC控制器124及DRAM 144(這些晶片可能在相同或不同封裝中);一個晶片可具有核心101至104、另一IMC 331和MSC控制器124、及另一DRAM 144(這些晶片可能在相同或不同封裝中);等等。
在一些實施例中,處理器310包括被耦接至IMC 331的I/O子系統115。I/O子系統115使處理器310與下列串列或並列I/O裝置能夠通訊:一或更多個網路336(諸如區域網路、廣域網路或網際網路)、儲存器I/O裝置(諸如快閃/磁性/光學大量儲存器152B、BIOS快閃362、TPM快閃372)及一或更多個非儲存器I/O裝置337(諸如顯示器、鍵盤、揚聲器、及相似者)。I/O子系統115可包括平台控制器集線器(PCH)(未顯示),該PCH進一步包括數個I/O轉接器338及其他I/O電路以提供對該儲存器及非儲存器I/O裝置與網路的存取。為了達成這個,I/O子系統115可針對各個所使用的I/O協定具有至少一個整合I/O轉接器338。I/O子系統115可能在與處理器310相同的晶片上,或在連接至處理器310的不同晶片及/或封裝上。
I/O轉接器338轉譯處理器310內所使用的主機通訊協定至相容於特定I/O裝置的協定。針對快閃/磁性/光學大量儲存器152B,I/O轉接器338可轉譯的一些該等協定包括周邊組件互連(PCI)快速(PCI-E)3.0;USB 3.0;SATA 3.0;小型電腦系統介面(SCSI)Ultra-640;及電機電子工程師學會(IEEE)1394「Firewire」;除了這些以外。針對BIOS快閃362,I/O轉接器338可轉譯的一些該等協定包括串列周邊介面(SPI)、Microwire、除了這些以外。額外地,可能有一或更多個無線協定I/O轉接器。無線協定的實例除了這些以外被用於個人區域網路,諸如IEEE 802.15及藍芽4.0;無線區域網路,諸如基於IEEE 802.11的無線協定;及蜂巢式協定。
在一些實施例中,I/O子系統115被耦接至TPM控制334以控制對系統持久性狀態的存取,諸如安全資料、加密金鑰、平台配置資訊及相似者。在一個實施例中,這些系統持久性狀態被儲存於TPM NVRAM 173中且經由NVRAM控制器332加以存取。
在一個實施例中,TPM 334為具有密碼功能的安全微控制器。TPM 334具有數個信任相關的性能;例如,用以確保TPM所保護的資料僅可用於相同TPM的SEAL性能。TPM 334可藉由使用其加密性能來保護資料及金鑰(例如,祕密)。在一個實施例中,TPM 334具有唯一且祕密的RSA金鑰,其容許它認證硬體裝置及平台。例如,TPM 334可驗證的是,尋求存取電腦系統300中所儲存之資料的系統為預期的系統。TPM 334也能夠報告該平台(電腦系統300)的完整性。此容許外部資源(例如,網路上的伺服器)來決定該平台的可信任度但不防止使用者對該平台的存取。
在一些實施例中,I/O子系統115也包括管理引擎(ME)335,其為一種容許系統管理員監測、維持、更新、升級、及修復電腦系統300的微處理器。在一個實施例中,系統管理員可藉由透過網路336經由ME 335編輯解碼表333的內容來遠端配置電腦系統300。
為了解說的便利,該等應用的其餘者有時稱為NVRAM 142作為PCMS裝置。PCMS裝置包括非揮發性的多層(垂直堆疊)PCM格陣列、具有低功率消耗、且可以位元級修改。這樣,術語NVRAM裝置及PCMS裝置可在下列討論中加以互換使用。然而如以上所討論應被了解的是,PCMS以外的不同技術也可被用於NVRAM 142。
應被理解的是,電腦系統可利用NVRAM 142於系統記憶體、大量儲存器、韌體記憶體及/或其他記憶體與儲存器用途,即使該電腦系統的處理器不具有所有的上述處理器310的組件、或具有比處理器310更多的組件。
在第3圖中所示的特定實施例中,MSC控制器124及NVRAM控制器332位於與處理器310相同的晶粒或封裝(稱為CPU封裝)上。在其他實施例中,MSC控制器124及/或NVRAM控制器332可位於晶粒外或CPU封裝外、經由匯流排(諸如記憶體匯流排(像是DDR匯流排(例如,DDR3、DDR4等))、PCI快速匯流排、桌面管理介面(DMI)匯流排、或任何其他類型的匯流排)耦接至處理器310或CPU封裝。
範例PCM匯流排及封裝配置
第4A至M圖示出其中處理器、近記憶體及遠記憶體以不同方式加以配置及封裝的各種不同部署。尤其,第4A至M圖中所示的一系列平台記憶體配置使新非揮發性系統記憶體(諸如PCM技術或較具體而言PCMS技術)能夠被使用。
儘管一些相同數值命名被用於第4A至M圖中多個圖各處,此不必然意指那些數值命名所識別的結構總是相同。例如,儘管相同數字被用來在數個圖中識別整合記憶體控制器(IMC)331及CPU 401,這些組件可在不同圖中以不同方式加以實施。一些這種差異未被強調,因為它們不相關於理解本發明的基本原理。
儘管數個不同系統平台配置方法在以下加以描述,這些方法屬於二個大類別:分離架構、及統一架構。簡言之,在分離架構設計中,記憶體側快取(MSC)控制器(例如,位於記憶體晶粒中或在該CPU封裝中的不同晶粒上)截取所有系統記憶體請求。有二個從該控制器「下游流動」的不同介面,該等介面成為CPU封裝的出口而耦接至該近記憶體及遠記憶體。各個介面專用於特定類型的記憶體且各個記憶體可在性能及容量方面加以獨立縮放。
在統一架構設計中,單一記憶體介面成為處理器晶粒或CPU封裝的出口且所有記憶體請求被送至此介面。MSC控制器以及該近與遠記憶體子系統被合併於此單一介面上。此記憶體介面必須被修改成符合該處理器的記憶體性能要求且必須支援交易、亂序協定,至少因為PCMS裝置可能不會依序處理讀取請求。依據以上一般類別,下列特定平台配置可被採用。
以下所述的實施例包括各種類型的匯流排/通道。術語「匯流排」、「通道」在此處被同義地使用。每個DIMM插座的記憶體通道之數量將取決於該電腦系統中所使用的特定CPU封裝(而一些CPU封裝支援例如每個插座三個記憶體通道)。
額外地,在以下所述之使用DRAM的實施例中,事實上任何類型的DRAM記憶體通道可被使用,包括(藉由實例且非限制)DDR通道(例如,DDR3、DDR4、DDR5等)。因此,儘管DDR因為其在業界中的廣泛接受、產生的價格點等而是有利的,本發明的基本原理不限於任何特定類型的DRAM或揮發性記憶體。
第4A圖示出分離架構的一個實施例,該分離架構包括在CPU封裝401中的操作為當作用於FM的快取之近記憶體(即,MSC)的一或更多個DRAM裝置403至406(在該處理器晶粒上或者在不同晶粒上)、以及一或更多個NVRAM裝置(諸如位於DIMM 450至451上當作遠記憶體的PCM記憶體)。CPU封裝401上的高頻寬鏈結407將單一或多個DRAM裝置403至406互連至處理器310,該處理器管理整合記憶體控制器(IMC)331及MSC控制器124。儘管在第4A圖及以下所述的其他圖中示出為不同單元,在一個實施例中MSC控制器124可被整合於記憶體控制器331內。
DIMM 450至451使用DDR插槽及電連接以DDR位址、資料及控制線與電壓定義DDR通道440(例如,由聯合電子裝置工程會(JEDEC)所定義的DDR3或DDR4標準)。DIMM 450至451上的PCM裝置提供此分離架構的遠記憶體容量,而對CPU封裝401的DDR通道440能夠載送DDR及交易協定兩者。對比於其中該CPU封裝內的處理器310或其他邏輯(例如,IMC 331或MSC控制器124)發送命令且接收立即回應的DDR協定,用來與PCM裝置通訊的交易協定容許CPU 401發出一系列的交易,各者由唯一交易ID加以識別。命令係由該等PCMDIMM的接收者上的PCM控制器加以服務,其送出回應回到CPU封裝401,潛在地以亂序的方式。CPU封裝401內的處理器310或其他邏輯藉由其交易ID(其隨著該回應被送出)來識別各個交易回應。以上配置容許該系統支援基於標準DDR DRAM的DIMM(使用經由DDR電連接的DDR協定)及基於PCM的DIMM配置(使用經由相同DDR電連接的交易協定)兩者。
第4B圖示出分離架構,其使用經由DDR通道440偶接的基於DDR DRAM的DIMM 452來形成當作MSC的近記憶體。處理器310管理記憶體控制器331及MSC控制器124。諸如PCM記憶體裝置的NVRAM裝置位於基於PCM的DIMM 453上,該等DIMM使用DDR插槽及CPU封裝401外的額外DDR通道442上的電連接。基於PCM的DIMM 453提供此分離架構的遠記憶體容量,而對CPU封裝401的DDR通道442係根據DDR電連接且能夠載送DDR及交易協定兩者。此容許該系統以不同數量的DDR DRAM DIMM 452(例如,DDR 4 DIMM)及PCM DIMM 453加以配置以達成想要容量及/或性能點。
第4C圖示出分離架構,其管理CPU封裝401上(在記憶體晶粒上或者在不同晶粒上)當作記憶體側快取(MSC)的近記憶體403至406。該CPU封裝上的高頻寬鏈結407被用來將單一或多個DRAM裝置403至406互連至處理器310,該處理器管理記憶體控制器331及MSC控制器124,如該分離架構所定義。諸如位於PCI快速卡或豎板上的PCM記憶體裝置455之NVRAM使用經由PCI快速匯流排454的PCI快速電連接及PCI快速協定或不同交易協定。PCI快速卡或豎板上的PCM裝置455提供此分離架構的遠記憶體容量。
第4D圖為分離架構,其使用基於DDR DRAM的DIMM 452及DDR通道440來形成當作MSC的近記憶體。處理器310管理記憶體控制器331及MSC控制器124。諸如位於PCI快速卡或豎板上的PCM記憶體裝置455之NVRAM使用經由PCI快速鏈結454的PCI快速電連接及PCI快速協定或不同交易協定。PCI快速卡或豎板上的PCM裝置455提供此分離架構的遠記憶體容量,而CPU封裝401外的記憶體通道介面提供多個DDR通道440給DDR DRAM DIMM 452。
第4E圖示出統一架構,其管理當作MSC的近記憶體及遠記憶體NVRAM兩者,該NVRAM諸如PCI快速卡或豎板上的PCM 456,其使用經由PCI快速匯流排454的PCI快速電連接及PCI快速協定或不同交易協定。處理器310管理整合記憶體控制器331,但在此統一架構情況中,MSC控制器124以及DRAM近記憶體與NVRAM遠記憶體係位於該卡或豎板456上。
第4F圖示出統一架構,其管理當作MSC的近記憶體及遠記憶體NVRAM(諸如PCM、在DIMM 458上使用DDR通道457)兩者。此統一架構中的近記憶體在各個DIMM 458上包含DRAM、當作對相同DIMM 458上的PCM裝置的記憶體側快取、其形成該特定DIMM的遠記憶體。MSC控制器124以及該近與遠記憶體位於各個DIMM 458上。在此實施例中,DDR匯流排457的多個記憶體通道被設置於該CPU封裝外。此實施例的DDR匯流排457實施經由DDR電連接的交易協定。
第4G圖示出混合分離架構,藉此MSC控制器124位於處理器310上且近記憶體及遠記憶體介面兩者共享相同DDR匯流排410。此配置使用基於DRAM的DDR DIMM 411a作為當作MSC的近記憶體,而基於PCM的DIMM 411b(即,遠記憶體)位於DDR匯流排410的相同記憶體通道,使用DDR插槽及NVRAM(諸如PCM記憶體裝置)。此實施例的記憶體通道同時載送DDR及交易協定兩者以分別定址該近記憶體及遠記憶體DIMM 411a及411b。
第4H圖示出統一架構,其中當作記憶體側快取的近記憶體461a位於背板或豎板461,以基於DRAM的DDR DIMM之形式。記憶體側快取(MSC)控制器124位於該豎板的DDR及PCM控制器460中,該DDR及PCM控制器可具有二或更多個記憶體通道連接至背板/豎板461上的DDR DIMM通道470且經由高性能互連462(諸如差分記憶體鏈結)互連至該CPU。關聯的遠記憶體461b座落在相同背板/豎板461上且由DIMM所形成,該等DIMM使用DDR通道470且被填充有NVRAM(諸如PCM裝置)。
第4I圖示出統一架構,其可被用來作為記憶體容量擴充至DDR記憶體子系統及DIMM 464(經由DDR匯流排471連接至其DDR記憶體子系統上的CPU封裝401)。針對此配置中額外基於NVM的容量,當作MSC的近記憶體位於背板或豎板463,以基於DRAM的DDR DIMM 463a之形式。MSC控制器124位於該豎板的DDR及PCM控制器460中,該DDR及PCM控制器可具有二或更多個記憶體通道連接至該背板/豎板上的DDR DIMM通道470且經由高性能互連462(諸如差分記憶體鏈結)互連至該CPU。關聯的遠記憶體463b座落在相同背板/豎板463上且由DIMM 463b所形成,該等DIMM使用DDR通道470且被填充有NVRAM(諸如PCM裝置)。
第4J圖為統一架構,其中當作記憶體側快取(MSC)的近記憶體位於各個及每個DIMM 465上,以DRAM的形式。DIMM 465係在耦接CPU封裝401與位在該等DIMM上的MSC控制器124的高性能互連/通道462(諸如差分記憶體鏈結)上。關聯的遠記憶體座落在相同DIMM 465上且由NVRAM(諸如PCM裝置)所形成。
第4K圖示出統一架構,其中當作MSC的近記憶體位於每個DIMM 466上,以DRAM的形式。該等DIMM係在連接CPU封裝401與位在該等DIMM上的MSC控制器124的高性能互連470上。關聯的遠記憶體座落在相同DIMM 466上且由NVRAM(諸如PCM裝置)所形成。
第4L圖示出分離架構,其使用DDR匯流排471上的基於DDR DRAM的DIMM 464來形成當作MSC的必要近記憶體。處理器310管理整合記憶體控制器331及記憶體側快取控制器124。諸如PCM記憶體的NVRAM形成了位於卡或豎板467上的遠記憶體,該等卡或豎板藉由使用交易協定而使用高性能互連468通訊至CPU封裝401。管理該遠記憶體的卡或豎板467管理單一緩衝器/控制器,該單一緩衝器/控制器可控制被連接於該豎板的多個基於PCM的記憶體或多個基於PCM的DIMM。
第4M圖示出統一架架構,其可使用卡或豎板469上的DRAM來形成當作MSC的必要近記憶體。諸如PCM記憶體的NVRAM形成也位於卡或豎板469上的遠記憶體,該等卡或豎板使用對CPU封裝401的高性能互連468。管理該遠記憶體的卡或豎板469管理單一緩衝器/控制器,該單一緩衝器/控制器可控制該豎板469上的多個基於PCM的裝置或多個基於PCM的DIMM且也可整合記憶體側快取控制器124。
在以上所述的一些實施例中,諸如第4G圖中所示,DRAM DIMM 411a及基於PCM的DIMM 411b位於相同記憶體通道上。結果相同組的位址/控制及資料線被用來連接該CPU至該DRAM及PCM記憶體兩者。為了減少通過該CPU網狀互連的資料流量的量,在一個實施例中,在具有基於PCM的DIMM之共用記憶體頻道上的DDR DIMM被配置成當作用於該基於PCM的DIMM中所儲存之資料的唯一MSC。在此種配置中,該基於PCM的DIMM中所儲存的遠記憶體資料僅被快取於相同記憶體通道內的DDR DIMM近記憶體中,藉此將記憶體交易本地化至該特定記憶體通道。
額外地,為了實施以上實施例,該系統位址空間可被邏輯細分於不同記憶體通道之間。例如,如果有四個記憶體通道,則¼的該系統位址空間可被指派至各個記憶體通道。如果各個記憶體通道被設有一個基於PCMS的DIMM及一個DDR DIMM,該DDR DIMM可被配置成當作用於該¼部分的該系統位址空間之MSC。
系統記憶體及大量儲存器裝置的選擇可取決於其上採用本發明實施例之電子平台的類型。例如,在個人電腦、平板電腦、筆記型電腦、智慧型手機、行動電話、功能手機、個人數位助理(PDA)、可攜式媒體播放器、可攜式遊戲裝置、遊戲機、數位攝影機、切換器、集線器、路由器、機上盒、數位視訊錄影機、或具有相對小的大量儲存器要求之其他裝置中,該大量儲存器可藉由使用單獨的NVRAM大量儲存器152A、或使用NVRAM大量儲存器152A與快閃/磁性/光學大量儲存器152B組合來加以實施。在具有相對大的大量儲存器要求(例如,大規模的伺服器)的其他電子平台中,該大量儲存器可藉由使用磁性儲存器(例如,硬碟機)或磁性儲存器、光學儲存器、全像儲存器、大量儲存器快取記憶體、及NVRAM大量儲存器152A的任意組合來加以實施。在此種情況中,負責儲存的系統硬體及/或軟體可實施各種智能持久性儲存器指派技術以用有效率或者有用的方式指派持久性程式碼與資料的區塊於FM 151B/NVRAM儲存器152A及快閃/磁性/光學大量儲存器152B之間。
例如,在一個實施例中,高功率的伺服器被配置有近記憶體(例如,DRAM)、PCMS裝置、及磁性大量儲存裝置以供大量的持久性儲存。在一個實施例中,筆記型電腦被配置有近記憶體及PCMS裝置(其實施遠記憶體及大量儲存器裝置兩者的角色(即,如第3圖中所示其被邏輯分割以實施這些角色))。家庭或辦公室桌上型電腦的一個實施例被配置成類似於筆記型電腦,但也可包括一或更多個磁性儲存器裝置以提供大量的持久性儲存容量。
平板電腦或蜂巢式電話裝置的一個實施例被配置有PCMS記憶體但潛在沒有近記憶體及沒有額外大量儲存器(為了成本/電源節省)。然而,該平板/電話可被配置有可移除大量儲存器裝置,諸如快閃或PCMS記憶條。
各種其他類型的裝置可如以上所述加以配置。例如,可攜式媒體播放器及/或個人數位助理(PDA)可能以類似於以上所述之平板/電話的方式加以配置,遊戲機可能以類似於桌上型電腦或膝上型電腦的方式加以配置。可加以類似地配置的其他裝置包括數位攝影機、路由器、機上盒、數位視訊錄影機、電視、及汽車。
MSC架構的實施例
在本發明的一個實施例中,系統記憶體中的大多數DRAM以PCM加以替換。如先前所討論,PCM以相對於DRAM顯著較低的成本來提供記憶體容量的顯著改善且為非揮發性。然而,某些PCM特性(諸如不對稱讀取-vs-寫入性能、寫入週期持久限度、以及其非揮發性質)使直接替換DRAM而沒有引起主要軟體改變會具有挑戰性。以下所述的本發明實施例提供一種軟體通透的方式以整合PCM同時也經由軟體增強來致能較新的使用。這些實施例促進記憶體子系統架構的成功轉變且提供一種方式以藉由使用單一PCM庫來合併記憶體與儲存器兩者,因此減輕對該平台中不同非揮發性儲存層的需要。
第5A圖中所示的特定實施例包括一或更多個處理器核心501(各具有內部記憶體管理單元(MMU)502以產生記憶體請求)以及一或更多個內部CPU快取503(用以依據指明的快取管理策略來儲存程式碼與資料的線)。如先前所提及,該快取管理策略可包含排他性快取管理策略(其中存在於該階層中一個特定快取階中的任何線係不存在於任何其他快取階中)或獨佔性快取管理策略(其中複製快取線以該快取階層的不同階加以儲存)。可被用於管理內部快取503的特定快取管理策略係熟習本技藝之人士所熟知,且這樣將不會在此處詳細描述。本發明的基本原理不限於任何特定快取管理策略。
第5A圖中也示出的是本地代理器505,其藉由產生用於記憶體請求的記憶體通道位址(MCA)來提供對MSC 510的存取。本地代理器505負責管理被指明的記憶體位址空間且解決被導向該記憶體空間的記憶體存取衝突。因此,如果任何核心需要存取給定的位址空間,其將送出請求至該本地代理器505,其將接著送出該請求至該特定MMU 502。在一個實施例中,一個本地代理器505被指派至每個MMU 502;然而在一些實施例中,單一本地代理器505可服務超過一個記憶體管理單元502。
如第5A圖中所示,MSC 510被配置於基於PCM的遠記憶體519前方。MSC 510管理對近記憶體518的存取且在適當時(例如,在請求無法從近記憶體518加以服務時)轉送記憶體存取請求(例如,讀取及寫入)至遠記憶體控制器521。MSC 510包括了回應於標籤快取511而操作的快取控制單元512,該標籤快取儲存了識別近記憶體518內所含有的快取線之標籤。在操作中,當快取控制單元512決定該記憶體存取請求可從近記憶體518加以服務(例如,回應於快取命中)時,其產生近記憶體位址(NMA)以識別近記憶體518內所儲存的資料。近記憶體控制單元515解釋該NMA且回應地產生電信號以存取近記憶體518。如先前所提及,在一個實施例中,該近記憶體為動態隨機存取記憶體(DRAM)。在此種情況中,該等電信號可包括列位址選通(RAS)及行位址選通(CAS)信號。然而應注意到的是,本發明的基本原理不限於使用DRAM於近記憶體。
確保軟體通透記憶體應用的另一組件為最佳化PCM遠記憶體控制器521,其管理PCM遠記憶體530特性同時仍提供所要求的性能。在一個實施例中,PCM控制器521包括位址間接表520,其轉譯快取控制單元515所產生的MCA成為被用來直接定址PCM遠記憶體530的PDA。這些轉譯可發生在「區塊」的粒度(其典型為5KB)。在一個實施例中隨著遠記憶體控制器521繼續移動PCM區塊於PCM裝置位址空間各處,需要該轉譯以確保沒有由於對任何特定區塊的高頻率寫入之磨損熱點。如先前所述,此種技術有時在此處被稱為「磨損平衡」。
因此,MSC 510被快取控制單元512管理,該快取控制單元容許MSC 510吸收、合併及過濾到PCM遠記憶體530的交易(例如,讀取及寫入)。快取控制單元512管理近記憶體518與PCM遠記憶體530間的所有資料移動及一致性要求。額外地,在一個實施例中,MSC快取控制器512介接至該CPU且提供傳統基於DRAM的記憶體子系統中所使用的標準同步載入/儲存介面。
範例讀取及寫入操作現在將於第5A圖中所示之架構的情境內加以描述。在一個實施例中,讀取操作將首先抵達MSC控制器512,該MSC控制器將實施查找以決定是否所請求的資料存在(例如,利用標籤快取511)。如果存在,其將送回該資料至請求的CPU核心501或I/O裝置(未顯示)。如果該資料不存在,MSC控制器512將送出該請求以及該系統記憶體位址(此處也稱為記憶體通道位址或MCA)至PCM遠記憶體控制器521。PCM控制器521將使用位址間接表520來轉譯該位址成PDA且將該讀取操作導向該PCM的此區。在從PCM遠記憶體530接收到所請求的資料時,PCM控制器521將送回所請求的資料至MSC控制器512,該MSC控制器將儲存該資料於MSC近記憶體518中且也送出該資料至所請求的CPU核心501、或I/O裝置。對此資料的後續請求可從MSC近記憶體518加以直接服務直到其被一些其他PCM資料替換。
在一個實施例中,記憶體寫入操作也首先到MSC控制器512,該MSC控制器將其寫入至MSC近記憶體518中。在此實施例中,當寫入操作被接收到時該資料可能沒有被直接送至PCM遠記憶體530。例如,僅在MSC近記憶體518中該資料被儲存的位置必須被重新使用於儲存用於不同系統記憶體位址的資料時,該資料可被送至PCM遠記憶體530。當此發生時,MSC控制器512注意到該資料目前不在PCM遠記憶體530中且將因此從近記憶體518擷取它並將送至PCM控制器521。PCM控制器521查找用於該系統記憶體位址的PDA且接著寫入該資料至PCM遠記憶體530。
在一個實施例中,MSC近記憶體518的大小將由工作負荷記憶體要求以及該近與遠記憶體性能加以決定。針對基於DRAM的MSC,該大小可被設定至該工作負荷記憶體佔用空間大小或PCM遠記憶體530大小的十分之一。此種MSC相較於目前處理器/系統架構中出現的習知快取而言非常大。藉由實例,且非限制,針對128GB的PCM遠記憶體大小,該MSC近記憶體的大小可為16GB大。
第5B圖示出與MSC 510的一個實施例關聯的額外細節。此實施例包括一組負責命令及定址的邏輯單元,包括命令緩衝器追蹤單元542(用以緩衝命令及位址)以及快取存取模式檢查單元544(其回應於來自MSC範圍暫存器(RR)單元545的控制信號來選擇MSC操作模式)。數個範例操作模式被描述於下。簡言之,這些可包括其中該近記憶體被用於傳統快取角色中的模式以及其中近記憶體518形成系統記憶體的一部份之模式。標籤檢查/命令排程器550使用來自標籤快取511的標籤來決定是否特定快取線被儲存於近記憶體518中且近記憶體控制器515產生通道位址信號(例如,CAS及RAS信號)。
此實施例也包括一組負責資料路由及處理的邏輯單元,包括一組用以儲存從近記憶體所擷取或被儲存至近記憶體的資料之資料緩衝器546。在一個實施例中,預取資料快取547也被含括而用以儲存從近記憶體及/或遠記憶體所預取的資料。然而,預取資料快取547為任意的且對遵守本發明的基本原理而言不是必要的。
錯誤校正碼(ECC)產生器/檢查器單元552產生及檢查ECC以確保被寫入至近記憶體或從該近記憶體所讀取的資料沒有錯誤。如以下所討論,在本發明的一個實施例中,ECC產生器/檢查器單元552被修改以儲存快取標籤。特定ECC為那些熟習本技藝之人士所充分理解且因此此處將不會詳細描述。通道控制器553將近記憶體518的資料匯流排耦接至MSC 510且產生用以存取近記憶體518的必要電發信(electrical signaling)(例如,用於DRAM近記憶體的RAS及CAS發信)。
第5B圖中也示出用以耦接MSC 510至遠記憶體的遠記憶體控制介面548。尤其,遠記憶體控制介面548產生了定址該遠記憶體所需要的MCA且傳送資料於資料緩衝器546與遠記憶體之間。
如所提及,一個實施例中所採用的近記憶體518相較於目前處理器/系統架構中出現的習知快取而言非常大。結果,維持該系統記憶體位址被轉譯至近記憶體位址的標籤快取511也可能非常大。儲存及查找該MSC標籤的成本可能對建造大型快取而言為重大障礙。這樣,在本發明的一個實施例中,此問題係藉由使用一種儲存該等快取標籤於MSC中被指派以供ECC保護的儲存器內之創新設計來加以解決,藉此實質上移除用於該等標籤之儲存器的成本。
此實施例在第5C圖中加以大致示出,其顯示用以儲存/管理快取標籤、儲存ECC資料、及實施ECC操作的整合標籤快取及ECC單元554。如所示,在實施標籤檢查操作時請求的時候,所儲存的標籤被提供給標籤檢查/命令排程器550(例如,決定是否資料的特定區塊被儲存於近記憶體快取518內)。
第5D圖示出範例組的資料524及對應的ECC 523與標籤522之組織。如所示,標籤522與ECC 523被共置於標籤快取/ECC單元554的記憶體(例如,在一個實施例中為DDR DRAM)中。在此實例中,總共64位元組的數個資料的區塊已經被讀取至標籤快取/ECC單元554中。ECC檢查/產生器單元554a藉由使用資料525來產生ECC且比較所產生的ECC對照與該資料關聯的現存ECC523。在此實例中,4位元組的ECC針對64位元組的資料525加以產生。然而,本發明的基本原理不限於任何特定類型或大小的ECC。額外地,應注意到的是,術語「資料」在此處被廣義地用來意指可執行程式碼及資料兩者,這兩者可被儲存於第5D圖中所示的資料儲存器525中。
在一個實施例中,具有第5D圖中所示之位元分配的3位元組(24位元)標籤522被使用。具體而言,位元00至16為提供該快取線的上層位址位元之位址位元。針對具有56位元的系統位址(例如,SPA[55:00]),位元00至16映射至該系統位址的位元55至29,容許512MB的最小快取大小。送回至該3位元組標籤,位元17至19被預留;位元20至21為提供對該快取線的遠端CPU快取之資訊的目錄位元(例如,提供關於該線被快取的其他CPU的指示);位元21至22指出該快取線的目前狀態(例如,00=清除;01=用過;10及11=未使用);且位元23指出是否該快取線為有效(例如,1=有效;0=無效)。
如以上所述利用直接映射快取架構(其容許該近記憶體位址從該系統記憶體位址直接擷取)會降低或消除在MSC 510可被讀取以前查找該標籤庫的潛時成本,藉此顯著改善性能。此外,檢查該等快取標籤以決定是否MSC 510具有所要求的資料之時間也被消除,因為其以並行於ECC檢查從該MSC所讀取之資料的方式加以完成。
在某些條件下,隨著該資料儲存標籤可能對寫入產生問題。寫入首先讀取該資料以便確保其不會覆寫資料於一些其他位址。此種每個寫入前的讀取可能變得昂貴。本發明的一個實施例採用了用過線標籤快取,其維持最近存取的近記憶體位址(NMA)。由於許多寫入對準最近存取的位址,相當小的標籤快取可得到有效命中率以過濾大部份的寫入前的讀取。
與PCM DIMM 519(包括PCM遠記憶體控制器521及一組PCM遠記憶體模組530a至i)的一個實施例關聯的額外細節在第5E圖中加以示出。在一個實施例中,PCM遠記憶體530a至i的單一庫被動態共享於系統記憶體與儲存器使用之間。在此實施例中,整個PCM庫530a至可被細分成4KB大小的「區塊」。PCM描述符表565識別各個PCM區塊使用作為記憶體或者儲存器。例如,該PDT的各個列可表示特定區塊,具有特定行識別出各個區塊的使用(例如,1=記憶體;0=儲存器)。在此實施例中,初始系統配置可分割PCM530a至i內的PCM區塊於儲存器與記憶體使用之間(即,藉由程式化PDT 565)。在一個實施例中,相同表被用來排除壞區塊且提供用於磨損平衡操作的備用區塊。此外,PDT 565也可包括各個PCMS區塊對軟體所使用的「邏輯」區塊位址之映射。在系統記憶體的情況中,該邏輯區塊位址與MCA或SPA相同。需要此關聯來在每當PCMS區塊由於磨損平衡而被移除時更新位址間接表(AIT)563。當此發生時,軟體所使用的邏輯區塊位址必須被映射至不同PCMS裝置位址(PDA)。在一個實施例中,此映射被儲存於該AIT中且在每個磨損平衡移動時被更新。
如所示,PCM控制器521包括系統實體位址(SPA)對PCM映射器556(其回應於磨損管理單元555而操作)以及位址間接表563(用以映射SPA至PCM區塊)。在一個實施例中,磨損管理邏輯555實施磨損平衡演算法以考量到事實上PCM 530a至530i的儲存格在太多寫入及/或抹除存取以後開始磨損。藉由例如迫使具有低週期計數的資料區塊偶爾移動、且藉此容許高週期資料區塊被放置於儲存低週期資料區塊的記憶體格中,磨損平衡將寫入及抹除散佈遍及PCM裝置的記憶體格。典型地,大多數的區塊不循環,但高週期計數區塊最有可能失效且磨損平衡以低週期計數區塊交換高週期計數區塊的位址。磨損管理邏輯555可藉由使用一或更多個計數器及暫存器來追蹤週期計數(例如,該等計數器可在每次一個週期被偵測到時遞增1且結果可被儲存於該組暫存器中)。
在一個實施例中,位址間接邏輯563包括位址間接表(AIT),該AIT含有寫入操作應被導向的PCM區塊之指示。該AIT可被用來自動移動區塊於記憶體與儲存器使用之間。從軟體的角度,對所有該等區塊的存取使用傳統記憶體載入/儲存語意(即,磨損平衡及位址間接操作以對軟體通透的方式發生)。在一個實施例中,AIT被用來轉譯軟體所產生的SPA成為PDA。要求此轉譯是因為需要均勻磨損PCMS裝置,該資料將需要在PDA空間中到處移動以避免任何熱點。當此種移動發生時,SPA與PDA間的關係將改變且該AIT將被更新以反映此新的轉譯。
接著該SPA至PCM的映射,排程器單元557排程對PCM裝置530a至i的基本PCM操作(例如,讀取及/或寫入)且PCM協定引擎558產生用以實施該讀取/寫入操作所需要的電發信。ECC單元562實施錯誤偵測及校正操作且資料緩衝器561暫時緩衝從PCM裝置530a至i所讀取的資料或暫時緩衝被寫入至PCM裝置530a至i所讀取的資料。持久性寫入緩衝器559被用來在即使出現意外斷電的情況下保持被保證寫回至PCMS的資料(例如,其藉由使用非揮發性儲存器來加以實施)。清除支援邏輯560被含括以清除該等持久性寫入緩衝器至PCMS,以週期性及/或依據指定的資料清除演算法的方式(例如,在該等持久性寫入緩衝器到達指定的臨限以後)。
在一個實施例中,MSC 510自動路由儲存器存取直接到PCM遠記憶體控制器521且自動路由記憶體存取到MSC快取控制單元512。來到PCM遠記憶體控制器521的儲存器存取被視為正常讀取及寫入且此處所述的位址間接與磨損平衡機制如往常一樣加以應用。額外的最佳化在本發明一個實施例中加以採用,其可在資料需要被移動於儲存器與記憶體之間時被實施。由於共用PCM庫530a至i被使用,僅藉由改變轉譯表(例如,該AIT)中的指標可以消除或延後資料移動。例如,當資料從儲存器轉移至記憶體時,識別出特定實體PCM儲存位置中的資料之指標可被更新以指出相同的實體PCM儲存位置現在為系統記憶體中的記憶體位置。在一個實施例中,此係由硬體以軟體通透的方式加以完成以提供性能及電源兩者的益處。
除了軟體通透操作模式以外,MSC控制器512的一個實施例提供如MSC範圍暫存器(RR)545所示的替代操作模式。這些操作模式可包括但不限於下列:
1)PCM記憶體的直接存取以供儲存器級應用。此種使用也將要求MSC控制器512確保被提交至PCM 519的寫入實際上被提交至持久性狀態。
2)近記憶體518的混合使用,其對軟體暴露一些部分以供直接使用同時維持其餘者作為MSC。當近記憶體518的一部分對軟體暴露以供直接使用時,該部分在該系統位址空間內為直接可定址。此容許某些應用明確地分離它們的記憶體指派於高性能小區(近記憶體518)及相對較低性能的大塊區(遠記憶體530)。對比地,指派為該MSC內的快取之部分不形成該系統位址空間的一部份(但反而如此處所述當做用於遠記憶體530的快取)。
如先前所討論,該MSC架構被定義使得數個不同系統分割方法為可能的。這些方法屬於二個大類別:
(1)分離架構:在此設計中MSC控制器512位於該CPU中且截取所有系統記憶體請求。有二個從該MSC成為該CPU的出口而連接至該近記憶體(例如,DRAM)及遠記憶體(例如,PCM)的不同介面。各個介面專用於特定類型的記憶體且各個記憶體可在性能及容量方面加以獨立縮放。
(2)統一架構:在此設計中單一記憶體介面成為該CPU的出口且所有記憶體請求被送至此介面。MSC控制器512以及該近記憶體(例如,DRAM)與遠記憶體(例如,PCM)子系統在該CPU外部被合併於此單一介面上。在一個實施例中,此記憶體介面被修改成符合該CPU的記憶體性能要求且支援交易、亂序協定。該近與遠記憶體要求以「統一」方式在這些介面各者上被滿足。
在以上類別的範圍內,數個不同分配選項是可行的,其一些被描述於下。
(1)分離實例:
近記憶體:DDR5 DIMM’s
近記憶體介面:一或更多個DDR5通道
遠記憶體:PCI快速(PCIe)卡上的PCM控制器/裝置
遠記憶體介面:x16 PCIe,Gen 3
(2)統一實例:
CPU記憶體介面:一或更多個KTMI(或QPMI)通道
豎卡上具有MSC/PCM控制器的近/遠記憶體
MSC/PCM控制器外的近記憶體介面:DDR5介面
MSC/PCM控制器外的遠記憶體介面:PCM裝置介面
具有不同近記憶體操作模式的實施例
如以上所討論,二階記憶體階層可被用來引入快速非揮發性記憶體(諸如PCM)作為系統記憶體同時使用非常大的基於DRAM的近記憶體。該近記憶體可被用來作為硬體管理快取。然而,一些應用不是硬體快取友善的,且這樣將受益於使用此種記憶體的替代方式。因為有數種不同應用在任何給定時間於伺服器上執行,本發明的一個實施例容許多個使用模式被同時致能。額外地,一個實施例提供了控制近記憶體指派給這些使用模式各者的能力。
在一個實施例中,MSC控制器512提供下列使用近記憶體的模式。如先前所提及,在一個實施例中,目前操作模式可由MSC範圍暫存器(RR)545中所儲存的操作碼加以指定。
(1)寫回快取模式:在此模式中,所有或部分的近記憶體518被用來作為用於PCM記憶體530的快取。儘管在寫回模式中,每個寫入操作最初被導向近記憶體518(假設該寫入被導向的快取線存在於該快取中)。僅在近記憶體518內的快取線待被另一快取線替換時,才實施對應的寫入操作以更新PCM遠記憶體530(對比於以下所述的寫通模式,其中各個寫入操作被立即傳遞至遠記憶體530)。
在一個實施例中,讀取操作將首先抵達MSC快取控制器512,該控制器將實施查找以決定是否所請求資料存在於PCM遠記憶體518中(例如,利用標籤快取511)。如果存在,其將送回該資料至請求的CPU、核心501或I/O裝置(未顯示於第5A圖中)。如果該資料不存在,MSC快取控制器512將送出該請求以及該系統記憶體位址至PCM遠記憶體控制器521。PCM遠記憶體控制器521將該系統記憶體位址轉譯成PCM實體裝置位址(PDA)且將該讀取操作導向遠記憶體530的這個區。如先前所提及,此轉譯可利用PCM控制器521用來在系統記憶體位址與PCM PDA間轉譯的位址間接表(AIT)563。在一個實施例中,該AIT被更新作為被實施以分配記憶體存取操作的磨損平衡演算法的一部份,且藉此減少PCM FM 530上的磨損。
在從PCM FM 530接收到所請求資料的時候,PCM FM控制器521送回該所請求資料至MSC控制器512(其儲存該資料於MSC近記憶體518中)且也送出該資料至請求的處理器核心501、或I/O裝置(未顯示於第5A圖中)。對此資料的後續請求可從近記憶體518加以直接服務直到其由一些其他PCM FM資料所替換。
在一個實施例中,記憶體寫入操作也首先到MSC控制器512,該控制器將它寫入至當作FM快取的MSC近記憶體518中。在此實施例中,當寫入操作被接收到時該資料可能未被直接送至PCM FM 530。例如,僅在當作FM快取的MSC近記憶體518中的位置(該資料被儲存於其中)必須被重新用來儲存用於不同系統記憶體位址的資料時,該資料可被送至PCM FM 530。當此發生時,MSC控制器512注意到該資料目前未在PCM FM 530中且將因此從當作FM快取的近記憶體518擷取它並將它送至PCM FM控制器521。PCM FM控制器521查找用於該系統記憶體位址的PDA且接著寫入該資料PCM FM 530。
(2)近記憶體略過模式:在此模式中,所有讀取及寫入會略過當作FM快取的NM 518且直接到PCM遠記憶體530。此種模式可能例如在應用不是快取友善或者需要資料以快取線的粒度提交至持久性時被使用。在一個實施例中,處理器快取503所實施的快取與當作FM快取的NM 518互相獨立地操作。結果,資料可被快取於當作FM快取的NM 518中,其未被快取於處理器快取503中(且在一些情況中可能不允許其被快取於處理器快取503中)且反之亦然。因此,可被指定為「不可快取」於處理器快取503中的某些資料可被快取於當作FM快取的NM 518中。
(3)近記憶體讀取快取寫入略過模式:此為以上模式的變型,此處從PCM 519讀取快取該持久性資料被容許(即,針對唯讀操作該持久性資料被快取於MSC 510中)。這在大部份的該持久性資料為「唯讀」且該應用的使用為快取友善時是有用的。
(4)近記憶體讀取快取寫通模式:此為先前模式的變型,此處除了讀取快取以外,寫入命中也被快取。每個對MSC近記憶體518的寫入會造成對PCM遠記憶體530的寫入。因此,由於該快取的寫通性質,快取線持久性仍被保證。
(5)近記憶體直接存取模式:在此模式中,所有或部分的該近記憶體為軟體直接可見且形成該系統記憶體位址空間的一部份。此種記憶體可完全在軟體的控制下。從PCM記憶體519至近記憶體的此區之任何資料移動需要明確的軟體複製。此種設計可產生用於軟體的不均勻記憶體位址(NUMA)記憶體領域,此處其相對於PCM遠記憶體530從近記憶體518得到較高性能。此種使用可針對某些高性能運算(HPC)及圖形應用(其需要對某些資料結構的極快存取)加以採用。此近記憶體直接存取模式等同於「探測」近記憶體中的某些快取線。此種探測可在較大、多路、集合相聯快取中有效地完成。
以下的表A總結上述操作模式的各者。
用來實施以上操作模式的處理器及晶片組組件包括下列:
(1)記憶體側快取控制器512,其以二層記憶體(2LM)階層來管理該近記憶體。
(2)記憶體側快取510中的一組範圍暫存器545(見第5B圖),其決定用於以上操作模式各者的系統位址範圍。
(3)從PCM記憶體子系統519告知寫入完成給MSC控制器545的機制。
(4)使近記憶體518中的線無效的機制。
(5)清除引擎,用以收回用過線至PCM且使該近記憶體位址空間的特定區無效。
在一個實施例中,使用模式各者的記憶體範圍在系統位址空間中為連續。然而,多個不相交區可使用相同模式。在一個實施例中,該組MSC RR 545內的各個模式範圍暫存器提供下列資訊:(1)操作模式(例如,寫回、近記憶體略過模式等);(2)該系統位址空間中的範圍基礎(例如,以2MB粒度或更大);及(3)範圍遮罩欄位,其識別該區的大小。
在一個實施例中,所支援的模式數量為實施方式特定的,但假設僅一個連續系統位址範圍可用於各個操作模式。如果近記憶體直接存取範圍暫存器被指定,則假設此將被映射至在該近記憶體位址空間的底部開始的連續區。此種連續區必須小於近記憶體的大小。額外地,如果該等快取模式的任一者被使用,該直接存取區大小必須小於該近記憶體大小以容許所要求性能的足夠快取大小。此種近記憶體指派至各種模式可由使用者配置。
總結,本發明的一個實施例依據下列組的操作來加以實施:
(1)當任何讀取或寫入存取到達記憶體側快取控制器521時,其檢查範圍暫存器(第5B圖)以決定目前的操作模式。
(2)針對任何讀取快取/寫入略過存取,MSC控制器512檢查以查看是否該位址目前被快取。如果是,其必須在送出該寫入完成回到來源以前使該線無效。
(3)針對任何寫入略過直接PCM操作,MSC控制器512等待一完成從PCM控制器521回來以確保該寫入被提交至全域可見的緩衝器。
(4)對近記憶體中的直接存取模式空間的任何讀取或寫入被導向近記憶體的適當區。沒有交易被送至該PCM記憶體。
(5)該範圍暫存器配置中的任何改變以增加或減少任何現存區或新增新的區將需要清除適當快取區至PCM。例如,如果軟體希望藉由減少寫回快取區來增加該直接存取模式區的大小,其可藉由首先收回該近記憶體區的適當部分且使該部分無效並接著改變該近記憶體直接存取模式範圍暫存器來這樣做。MSC控制器510將接著知道未來的快取係對最小近記憶體位址空間做出。
本發明的一個特定實施例(其中該系統實體位址(SPA)空間被劃分於多個MSC之間)在第6A圖中加以示出。在所示的實施例中,MSC快取654及控制器656係與SPA區667a關聯;MSC快取655及控制器657係與SPA區667b關聯;MSC快取661及控制器663係與SPA區667c關聯;且MSC快取660及控制器662係與SPA區667d關聯。二個CPU 670及671被示出,各者分別具有四個核心650及651、及分別具有本地代理器652及653。二個CPU 670及671分別經由遠記憶體介面659及665耦接至共用遠記憶體控制器666。
因此,在第6A圖中,整個SPA記憶體空間被細分成區,而各個區係與特定MSC及控制器關聯。在此實施例中,給定的MSC具有不連續SPA空間指派,但沒有二個MSC將具有重疊的SPA空間。此外,該等MSC係與不重疊SPA空間關聯且沒有MSC間同調計數被需要。
以上所述近記憶體模式的任一者可在第6A圖中所示的架構上加以採用。例如,各個MSC控制器656至657、662至663可被配置成以寫回快取模式、近記憶體略過模式、近記憶體讀取快取寫入略過模式、近記憶體讀取快取寫通模式、或近記憶體直接存取模式來操作。如先前所討論,特定模式在範圍暫存器(RR)655內針對各個MSC 610加以指定。
在一個實施例中,不同MSC可同時實施不同的操作模式。例如,MSC控制器656的範圍暫存器可指定該近記憶體直接存取模式,MSC控制器657的範圍暫存器可指定寫回快取模式,MSC控制器662的範圍暫存器可指定讀取快取/寫入略過模式,且MSC控制器663可指定讀取快取/寫通模式。此外,在一些實施例中,個別MSC可同時實施不同的操作模式。例如,MSC控制器656可被配置成對某些系統位址範圍實施近記憶體直接存取模式且對其他系統位址範圍實施近記憶體略過模式。
前述組合當然僅例示了其中MSC控制器可被獨立程式化的方式。本發明的基本原理不限於這些或任何其他組合。
如參照一些以上所述實施例加以描述(例如,諸如參照第4G圖所述),MSC及其MSC控制器被配置成在與負責該特定SPA範圍之PCM DIMM相同的記憶體通道(例如,相同實體DDR匯流排)上操作。結果,在此實施例中,指定的SPA範圍內發生的記憶體交易被本地化於相同記憶體通道內,藉此減少通過該CPU網狀互連的資料流量。
第6B圖提供了依據本發明實施例可如何配置系統記憶體位址映射620、近記憶體位址映射621及PCM位址映射622的圖形表示。如先前所討論,MSC控制器606以範圍暫存器(RR)605所識別的模式來操作。系統記憶體映射620具有被指派至近記憶體直接存取模式的第一區602、被指派至近記憶體略過模式的第二區603、及被指派至寫回快取模式的第三區604。MSC控制器606提供對近記憶體位址映射621所示之近記憶體的存取,該近記憶體位址映射包括被指派至寫回快取模式的第一區608、及被指派至近記憶體直接存取模式的第二區609。如所述,近記憶體快取略過操作被直接提供給依據PCM位址映射622操作的PCM控制器610,該PCM位址映射包括近記憶體略過區611(用於近記憶體略過模式)及寫回快取區612(用於寫回快取模式)。結果,系統記憶體映射620、近記憶體位址映射621及PCM位址映射622可根據該等MSC控制器所實施的特定模式加以細分。
第6C和6D圖示出本發明一個實施例中所採用的定址技術(其一些已經被大致描述)。尤其,第6C圖顯示系統實體位址(SPA)675如何映射至近記憶體位址(NMA)或PCM裝置位址(PDA)。尤其,該SPA首先被處理器內的解碼邏輯676解碼以識別本地代理器605(例如,負責已解碼的位址空間之本地代理器)。與選定本地代理器605關聯的解碼邏輯677進一步解碼SPA 675(或其一部分)以產生記憶體通道位址(MCA),該MCA識別被指派至該特定SPA空間的適當MSC快取控制器612。選定快取控制器612接著映射該記憶體存取請求至近記憶體位址(在678)接著任意的是交錯操作(在680,描述於下)或者替代地實施任意的交錯操作(在679)接著是由該PCM遠記憶體控制器映射681至PCM裝置位址PDA(例如,如以上所述使用位址間接及磨損管理)。
任意的交錯程序之一個實施例在第6D圖中加以示出,其顯示如何藉由使用交錯可將軟體分頁分離遍及多個MSC及PCM位址空間。在第6D圖所示的範例實例中,該SPA空間內的二個分頁682至683以快取線交錯邏輯684加以交錯而產生該MCA空間內的二組交錯線685至686。例如,來自記憶體分頁682至683的所有奇數線(例如,線1、3、5等)可被送至第一MCA空間685,且來自記憶體分頁682至683的所有偶數線(例如,線2、4、6等)可被送至第二MCA空間686。在一個實施例中,該等分頁為5 Kbyte分頁,儘管本發明的基本原理不限於任何分頁大小。依據位址間接表(AIT)及磨損管理邏輯來操作的PCM控制器687至688接著重新配置該PCM裝置位址(PDA)記憶體空間內的快取線(如以上所述)。交錯的此性質可被用來分配該工作負荷遍及MSC 610及/或PCM裝置619(例如,作為對不均勻記憶體位址(NUMA)的替代)。
本發明的實施例可包括各種步驟,其已經在以上加以描述。該等步驟可被體現於機器可執行指令中,該等機器可執行指令可被用來使一般用途或特殊用途處理器實施該等步驟。替代地,這些步驟可由含有用以實施該等步驟的硬線邏輯之特定硬體組件加以實施、或由程式化電腦組件與客製硬體組件的任意組合加以實施。
如此處所述,指令可意指硬體的特定配置,該硬體諸如應用特定積體電路(ASIC),其被配置成實施某些操作或具有被儲存於非暫時性電腦可讀取媒體中所體現記憶體中的預定功能或軟體指令。因此,圖中所示的技術可藉由使用一或更多個電子裝置(例如,終端站、網路元件等)上所儲存或所執行的碼及資料來加以實施。此種電子裝置藉由使用電腦機器可讀取媒體來儲存及傳送(在內部及/或經由網路與其他電子裝置)碼及資料,諸如非暫時性電腦機器可讀取儲存媒體(例如,磁碟;光碟;隨機存取記憶體;唯讀記憶體;快閃記憶體裝置;相變記憶體)及暫時性電腦機器可讀取通訊媒體(例如,電、光、聲或其他形式的傳播信號-諸如載波、紅外線信號、數位信號等)。此外,此種電子裝置典型包括一組的一或更多個處理器,被耦接至一或更多個其他組件,諸如一或更多個儲存器裝置(非暫時性機器可讀取儲存媒體)、使用者輸入/輸出裝置(例如,鍵盤、觸控螢幕、及/或顯示器)、及網路連接。該組處理器與其他組件的耦接典型經由一或更多個匯流排及橋接器(也稱為匯流排控制器)。該儲存裝置及載送該網路流量的信號分別表示一或更多個機器可讀取儲存媒體及機器可讀取通訊媒體。因此,給定電子裝置的儲存裝置典型儲存碼及/或資料以供在該電組裝至的該組一或更多個處理器上執行。當然,本發明實施例的一或更多部份可藉由使用軟體、韌體、及/或硬體的不同組合來加以實施。此實施方式各處,為了解說之目的,數個特定細節被陳述以便提供本發明的徹底理解。然而對熟習本技藝之人士而言將顯而易見的是,本發明可在沒有一些這種特定細節的情況下加以實行。在某些例子中,熟知結構及功能未以詳盡細節加以描述以便避免模糊本發明之標的。因此,本發明的範圍與精神應就隨後的申請專利範圍而言來加以判斷。
100‧‧‧處理器
101a至b‧‧‧內部處理器快取
102a至b‧‧‧內部處理器快取
103a至b‧‧‧內部處理器快取
104a至b‧‧‧內部處理器快取
101‧‧‧處理器核心
102‧‧‧處理器核心
103‧‧‧處理器核心
104‧‧‧處理器核心
105‧‧‧低階快取
106‧‧‧內部快取
107‧‧‧外部快取
108‧‧‧外部快取
109‧‧‧外部快取
115‧‧‧I/O子系統
116‧‧‧系統記憶體
117‧‧‧系統記憶體
118‧‧‧系統記憶體
119‧‧‧系統記憶體
120‧‧‧內部處理器快取
121‧‧‧近記憶體
122‧‧‧遠記憶體
124‧‧‧MSC控制器
140‧‧‧記憶體/儲存器階層
142‧‧‧NVRAM
144‧‧‧近記憶體
150‧‧‧快取階
150A‧‧‧處理器快取
150B‧‧‧近記憶體
151‧‧‧系統記憶體階
151A‧‧‧近記憶體
151B‧‧‧遠記憶體
152‧‧‧大量儲存器階
152A‧‧‧NVRAM大量儲存器
152B‧‧‧快閃/磁性/光學大量儲存器
153‧‧‧韌體記憶體階
170‧‧‧BIOS快閃
172‧‧‧BIOS NVRAM
173‧‧‧可信任平台模組NVRAM
174‧‧‧NVRAM
190‧‧‧系統位址空間A
191‧‧‧系統位址空間B
192‧‧‧草稿型記憶體
193‧‧‧寫入緩衝器
300‧‧‧電腦系統
310‧‧‧處理器
311‧‧‧整合圖形單元
313‧‧‧快取
314‧‧‧本地代理器
331‧‧‧整合記憶體控制器
332‧‧‧NVRAM控制器
333‧‧‧解碼表
334‧‧‧TPM
335‧‧‧管理引擎
336‧‧‧網路
337‧‧‧非儲存器I/O裝置
338‧‧‧I/O轉接器
342‧‧‧標籤快取
362‧‧‧BIOS快閃
372‧‧‧TPM快閃
380‧‧‧記憶體/儲存器子系統
401‧‧‧CPU封裝
403‧‧‧DRAM裝置
404‧‧‧DRAM裝置
405‧‧‧DRAM裝置
406‧‧‧DRAM裝置
407‧‧‧高頻寬鏈結
410‧‧‧DDR匯流排
411a‧‧‧基於DRAM的DDR DIMM
411b‧‧‧基於PCM的DIMM
440‧‧‧DDR通道
442‧‧‧DDR通道
450‧‧‧PCM記憶體
451‧‧‧PCM記憶體
452‧‧‧基於DDR DRAM的DIMM
453‧‧‧基於PCM的DIMM
454‧‧‧PCI快速匯流排
455‧‧‧PCI快速卡或豎板上的PCM記憶體裝置
456‧‧‧PCI快速卡或豎板上的PCM
457‧‧‧DDR通道
458‧‧‧DIMM
460‧‧‧DDR及PCM控制器
461‧‧‧背板或豎板
461a‧‧‧近記憶體
461b‧‧‧遠記憶體
462‧‧‧高性能互連
463‧‧‧背板或豎板
463a‧‧‧基於DRAM的DDR DIMM
463b‧‧‧遠記憶體
464‧‧‧DDR記憶體子系統及DIMM
465‧‧‧DIMM
466‧‧‧DIMM
467‧‧‧卡或豎板
468‧‧‧高性能互連
469‧‧‧卡或豎板
470‧‧‧DDR DIMM通道
471‧‧‧DDR匯流排
501‧‧‧處理器核心
502‧‧‧內部記憶體管理單元
503‧‧‧內部CPU快取
505‧‧‧本地代理器
510‧‧‧MSC
511‧‧‧標籤快取
512‧‧‧快取控制單元
515‧‧‧近記憶體控制單元
518‧‧‧近記憶體
519‧‧‧基於PCM的遠記憶體
520‧‧‧位址間接表
521‧‧‧遠記憶體控制器
522‧‧‧標籤
523‧‧‧ECC
524‧‧‧資料
525‧‧‧資料
530‧‧‧PCM遠記憶體
530a-i‧‧‧PCM遠記憶體模組
542‧‧‧命令緩衝器追蹤單元
544‧‧‧快取存取模式檢查單元
545‧‧‧MSC範圍暫存器單元
546‧‧‧資料緩衝器
547‧‧‧預取資料快取
548‧‧‧遠記憶體控制介面
550‧‧‧標籤檢查/命令排程器
552‧‧‧錯誤校正碼產生器/檢查器單元
553‧‧‧通道控制器
554‧‧‧整合標籤快取及ECC單元
554a‧‧‧ECC檢查/產生器單元
554b‧‧‧標籤單元
555‧‧‧磨損管理單元
556‧‧‧SPA至PCM映射器
557‧‧‧排程器單元
558‧‧‧PCM協定引擎
559‧‧‧持久性寫入緩衝器
560‧‧‧清除支援邏輯
561‧‧‧資料緩衝器
562‧‧‧ECC單元
563‧‧‧位址間接表
565‧‧‧PCM描述符表
602‧‧‧第一區
603‧‧‧第二區
604‧‧‧第三區
605‧‧‧範圍暫存器
606‧‧‧MSC控制器
608‧‧‧第一區
609‧‧‧第二區
610‧‧‧PCM控制器
611‧‧‧近記憶體略過區
612‧‧‧寫回快取區
619‧‧‧PCM裝置
620‧‧‧系統記憶體位址映射
621‧‧‧近記憶體位址映射
622‧‧‧PCM位址映射
650‧‧‧四個核心
651‧‧‧四個核心
652‧‧‧本地代理器
653‧‧‧本地代理器
654‧‧‧MSC快取
655‧‧‧MSC快取
656‧‧‧控制器
657‧‧‧控制器
659‧‧‧遠記憶體介面
660‧‧‧MSC快取
661‧‧‧MSC快取
662‧‧‧控制器
663‧‧‧控制器
665‧‧‧遠記憶體介面
666‧‧‧共用遠記憶體控制器
667a‧‧‧SPA區
667b‧‧‧SPA區
667c‧‧‧SPA區
667d‧‧‧SPA區
670‧‧‧CPU
671‧‧‧CPU
675‧‧‧系統實體位址
676‧‧‧解碼邏輯
677‧‧‧解碼邏輯
682‧‧‧分頁
683‧‧‧分頁
684‧‧‧快取線交錯邏輯
685‧‧‧第一MCA空間
686‧‧‧第二MCA空間
687‧‧‧PCM控制器
688‧‧‧PCM控制器
下列說明及隨附圖式被用來示出本發明的實施例。在該等圖式中:第1圖示出了依據本發明的實施例之快取及系統記憶體配置;第2圖示出本發明的實施例所採用的記憶體及儲存器階層;第3圖示出本發明的實施例可被實施的電腦系統;第4A圖示出了依據本發明的實施例之包括PCM的第一系統架構;第4B圖示出了依據本發明的實施例之包括PCM的第二系統架構;第4C圖示出了依據本發明的實施例之包括PCM的第三系統架構;第4D圖示出了依據本發明的實施例之包括PCM的第四系統架構;第4E圖示出了依據本發明的實施例之包括PCM的第五系統架構;第4F圖示出了依據本發明的實施例之包括PCM的第六系統架構;第4G圖示出了依據本發明的實施例之包括PCM的第七系統架構;第4H圖示出了依據本發明的實施例之包括PCM的第八系統架構;第4I圖示出了依據本發明的實施例之包括PCM的第九系統架構;第4J圖示出了依據本發明的實施例之包括PCM的第十系統架構;第4K圖示出了依據本發明的實施例之包括PCM的第十一系統架構;第4L圖示出了依據本發明的實施例之包括PCM的第十二系統架構;及第4M圖示出了依據本發明的實施例之包括PCM的第十三系統架構。
第5A圖示出了包括揮發性近記憶體及非揮發性遠記憶體的系統架構之一個實施例;第5B圖示出記憶體側快取(MSC)的一個實施例;第5C圖示出了包括整合標籤快取及ECC產生/檢查邏輯之記憶體側快取(MSC)的另一實施例;第5D圖示出範例標籤快取及ECC產生器/檢查單元的一個實施例;第5E圖示出了包括PCM控制器的PCM DIMM之一個實施例;第6A圖示出了依據本發明一個實施例之專用於某指定系統實體位址(SPA)範圍的MCE控制器及快取;第6B圖示出了依據本發明一個實施例之系統記憶體映射、近記憶體位址映射與PCM位址映射間的範例映射;第6C圖示出了依據本發明一個實施例之系統實體位址(SPA)與PCM實體裝置位址(PDA)或近記憶體位址(NMA)間的範例映射;及第6D圖示出了依據本發明一個實施例之系統實體位址(SPA)空間及記憶體通道位址(MCA)空間內的記憶體標籤之間的交錯。
101a至b‧‧‧內部處理器快取
102a至b‧‧‧內部處理器快取
103a至b‧‧‧內部處理器快取
104a至b‧‧‧內部處理器快取
101‧‧‧處理器核心
102‧‧‧處理器核心
103‧‧‧處理器核心
104‧‧‧處理器核心
105‧‧‧低階快取
106‧‧‧內部快取
107‧‧‧外部快取
108‧‧‧外部快取
109‧‧‧外部快取
116‧‧‧系統記憶體
117‧‧‧系統記憶體
118‧‧‧系統記憶體
119‧‧‧系統記憶體
120‧‧‧內部處理器快取
121‧‧‧近記憶體
122‧‧‧遠記憶體
权利要求:
Claims (34)
[1] 一種多階記憶體系統,包含:處理器,具有用以執行指令與處理資料的複數個核心、及用以依據第一快取管理策略來快取指令及資料的一或更多個處理器快取;第一階記憶體,具有與其關聯的第一組特性,該第一組特性包括第一讀取存取速率及第一寫入存取速率;及第二階記憶體,具有與其關聯的第二組特性,該第二組特性包括:第二讀取及寫入存取速率,彼等的至少一者係分別相對低於該第一讀取存取速率或者第一寫入存取速率;非揮發性,使得該第二階記憶體在電源被移除時維持其內容;隨機存取與隨機存取及記憶體子系統可定址性,使得被儲存於其中的指令或資料可能以等同於該電腦系統的記憶體子系統之粒度加以存取;記憶體控制器,用以接收記憶體請求及分配該等記憶體請求於該第一及該第二階記憶體之間,該記憶體控制器指定複數個不同操作模式給該第一階記憶體,該等不同操作模式包括第一模式及第二模式,該第一模式中該第一階記憶體操作為用於該第二階記憶體的記憶體快取,該第二模式中該第一階記憶體被指派至系統位址空間的第一位址範圍而該第二階記憶體被指派至該系統位址空間的第二位址範圍,其中該第一範圍及該第二範圍表示整個系統位址空間。
[2] 如申請專利範圍第1項之系統,其中當在該第一操作模式中時該記憶體控制器指定複數個子模式時,該等子模式包括寫回快取操作模式,使得僅在該第一階記憶體內的快取線待被另一快取線替換時,才實施寫入操作以更新該第二階記憶體。
[3] 如申請專利範圍第1項之系統,其中當在該第一操作模式中時該記憶體控制器指定複數個子模式時,該等子模式包括第一階記憶體略過(bypass)模式,在該模式中所有讀取及寫入直接到該第二階記憶體。
[4] 如申請專利範圍第1項之系統,其中當在該第一操作模式中時該記憶體控制器指定複數個子模式時,該等子模式包括第一階計憶體讀取-快取-寫入模式,在該模式中寫入直接到該第二階記憶體且該第一階記憶體中的持久性資料之讀取快取被允許。
[5] 如申請專利範圍第1項之系統,其中當在該第一操作模式中時該記憶體控制器指定複數個子模式時,該等子模式包括第一階記憶體讀取快取寫通(write-through)模式,在該模式中該第一階記憶體中的持久性資料之讀取快取被允許且寫入命中也被快取。
[6] 如申請專利範圍第1項之系統,其中該第一組特性的一者包含第一功率消耗位準且該第二組特性包含相對低於該第一功率消耗位準的第二功率消耗位準。
[7] 如申請專利範圍第1項之系統,其中該第一組特性的一者包含第一密度且該第二組特性包含相對高於該第一密度的第二密度。
[8] 如申請專利範圍第1項之系統,其中該第二組特性的一者包含該第二階記憶體為直接可寫入以至於不需要在寫入以前抹除現存資料。
[9] 如申請專利範圍第1項之系統,其中該第一階記憶體包含動態隨機存取記憶體(DRAM)且其中該一或更多個處理器快取包含靜態隨機存取記憶體(SRAM)。
[10] 如申請專利範圍第9項之系統,其中該第二階記憶體包含相變記憶體(PCM)。
[11] 如申請專利範圍第10項之系統,其中該PCM記憶體包含相變記憶體與切換器(PCMS)。
[12] 如申請專利範圍第1項之系統,進一步包含:用以持久性儲存指令及資料的大量儲存裝置,該大量儲存裝置經由介面通訊耦接至該第一階記憶體及該第二階記憶體。
[13] 如申請專利範圍第1項之系統,其中該第一寫入存取速率係相對高於該第二寫入存取速率,但該第一讀取存取速率近似於該第二讀取存取速率。
[14] 如申請專利範圍第13項之系統,其中該第一寫入存取速率係比該第二寫入存取速率高至少一個數量級。
[15] 如申請專利範圍第1項之系統,其中該第一組特性包括第一讀取存取潛時及第一寫入存取潛時,且該第二組特性包括第二讀取存取潛時及第二寫入存取潛時,彼等的至少一者係分別相對高於該第一讀取存取潛時或者第二寫入存取潛時。
[16] 如申請專利範圍第1項之系統,其中該第二階記憶體每單位大小製造比該第二階記憶體更便宜。
[17] 如申請專利範圍第1項之系統,其中該第一快取管理策略獨立於該第二快取管理策略而操作。
[18] 如申請專利範圍第1項之系統,其中記憶體子系統可定址性包含以快取線的粒度之可定址性。
[19] 一種電腦系統,包含:處理器,具有用以執行指令與處理資料的複數個核心、及用以依據第一快取管理策略來快取指令及資料的一或更多個處理器快取;第一階記憶體,具有與其關聯的第一組特性,該第一組特性包括第一讀取存取速率及第一寫入存取速率;及第二階記憶體,具有與其關聯的第二組特性,該第二組特性包括:第二讀取及寫入存取速率,彼等的至少一者係分別相對低於該第一讀取存取速率或者第一寫入存取速率;非揮發性,使得該第二階記憶體在電源被移除時維持其內容;隨機存取與記憶體子系統可定址性,使得被儲存於其中的指令或資料可能以等同於該電腦系統的記憶體子系統之粒度加以存取;記憶體控制器,用以接收記憶體請求及分配該等記憶體請求於該第一及該第二階記憶體之間,該記憶體控制器可配置成使該第一階記憶體以複數個不同操作模式操作,其中該第一階記憶體操作為用於該第二階記憶體的記憶體快取,該等模式的至少一者包含寫回快取操作模式,使得僅在該第一階記憶體內的快取線待被另一快取線替換時,實施寫入操作以更新該第二階記憶體。
[20] 如申請專利範圍第19項之系統,其中該等模式的一者包含第一階記憶體略過模式,在該模式中所有讀取及寫入直接到該第二階記憶體。
[21] 如申請專利範圍第19項之系統,其中該等模式的一者包含第一階計憶體讀取-快取-寫入模式,在該模式中寫入直接到該第二階記憶體且該第一階記憶體中的持久性資料之讀取快取被允許。
[22] 如申請專利範圍第19項之系統,其中該等模式的一者包含第一階記憶體讀取快取寫通模式,在該模式中該第一階記憶體中的持久性資料之讀取快取被允許且寫入命中也被快取。
[23] 如申請專利範圍第19項之系統,其中該第一組特性的一者包含第一功率消耗位準且該第二組特性包含相對低於該第一功率消耗位準的第二功率消耗位準。
[24] 如申請專利範圍第19項之系統,其中該第一組特性的一者包含第一密度且該第二組特性包含相對高於該第一密度的第二密度。
[25] 如申請專利範圍第19項之系統,其中該第二組特性的一者包含該第二階記憶體為直接可寫入以至於不需要在寫入以前抹除現存資料。
[26] 如申請專利範圍第19項之系統,其中該第一階記憶體包含動態隨機存取記憶體(DRAM)且其中該一或更多個處理器快取包含靜態隨機存取記憶體(SRAM)。
[27] 如申請專利範圍第26項之系統,其中該第二階記憶體包含相變記憶體(PCM)。
[28] 如申請專利範圍第27項之系統,其中該PCM記憶體包含相變記憶體與切換器(PCMS)。
[29] 如申請專利範圍第19項之系統,進一步包含:用以持久性儲存指令及資料的大量儲存裝置,該大量儲存裝置經由介面通訊耦接至該第一階記憶體及該第二階記憶體。
[30] 如申請專利範圍第19項之系統,其中該第一寫入存取速率係相對高於該第二寫入存取速率,但該第一讀取存取速率近似於該第二讀取存取速率。
[31] 如申請專利範圍第30項之系統,其中該第一寫入存取速率係比該第二寫入存取速率高至少一個數量級。
[32] 如申請專利範圍第19項之系統,其中該第一組特性包括第一讀取存取潛時及第一寫入存取潛時,且該第二組特性包括第二讀取存取潛時及第二寫入存取潛時,彼等的至少一者係分別相對高於該第一讀取存取潛時或者第二寫入存取潛時。
[33] 如申請專利範圍第19項之系統,其中該第二階記憶體每單位大小製造比該第二階記憶體更便宜。
[34] 如申請專利範圍第19項之系統,其中該第一快取管理策略獨立於該第二快取管理策略而操作。
类似技术:
公开号 | 公开日 | 专利标题
TWI454915B|2014-10-01|實施具有不同操作模式之多階記憶體階層的設備與方法
US10719443B2|2020-07-21|Apparatus and method for implementing a multi-level memory hierarchy
TWI594182B|2017-08-01|用於在共用記憶體通道上實施多位準記憶體階層之裝置及方法
US9269438B2|2016-02-23|System and method for intelligently flushing data from a processor into a memory subsystem
TWI489276B|2015-06-21|於第二階記憶體階層中記憶體側快取的動態部份斷電之系統與方法
US9286205B2|2016-03-15|Apparatus and method for phase change memory drift management
TWI596474B|2017-08-21|用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片
TW201329994A|2013-07-16|支援近記憶體及遠記憶體存取的記憶體通道
同族专利:
公开号 | 公开日
EP2761464A1|2014-08-06|
WO2013048503A1|2013-04-04|
TWI454915B|2014-10-01|
US9378142B2|2016-06-28|
EP3451176A1|2019-03-06|
US10102126B2|2018-10-16|
US11132298B2|2021-09-28|
US20170031821A1|2017-02-02|
CN103946811B|2017-08-11|
US20180341588A1|2018-11-29|
EP2761464A4|2015-06-17|
US20130268728A1|2013-10-10|
EP2761464B1|2018-10-24|
CN107608910A|2018-01-19|
CN103946811A|2014-07-23|
CN107608910B|2021-07-02|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
TWI512469B|2013-01-21|2015-12-11|Micron Technology Inc|用於存取記憶體之系統及方法|
TWI514157B|2013-07-09|2015-12-21|Hewlett Packard Development Co|用於寫入流量控制之記憶體模組與方法、以及電腦系統|
TWI553478B|2015-09-23|2016-10-11|瑞昱半導體股份有限公司|能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置|
TWI647565B|2016-03-31|2019-01-11|物聯智慧科技(深圳)有限公司|計算堆疊大小之計算系統及方法|
TWI748197B|2018-06-28|2021-12-01|台灣積體電路製造股份有限公司|半導體裝置、半導體系統及積體電路的製造方法|US4713755A|1985-06-28|1987-12-15|Hewlett-Packard Company|Cache memory consistency control with explicit software instructions|
EP0332117B1|1988-03-09|1994-05-11|Kabushiki Kaisha Toshiba|Portable electronic apparatus|
US5068823A|1988-07-11|1991-11-26|Star Semiconductor Corporation|Programmable integrated circuit using topological and parametric data to selectively connect and configure different high level functional blocks thereof|
US5230052A|1990-10-01|1993-07-20|International Business Machines Corp.|Apparatus and method for loading bios into a computer system from a remote storage location|
US5519843A|1993-03-15|1996-05-21|M-Systems|Flash memory system providing both BIOS and user storage capability|
US5511202A|1993-07-26|1996-04-23|International Business Machines Corporation|Desktop computer system having zero-volt system suspend and control unit for ascertaining interrupt controller base address|
US6161208A|1994-05-06|2000-12-12|International Business Machines Corporation|Storage subsystem including an error correcting cache and means for performing memory to memory transfers|
JPH08137634A|1994-11-09|1996-05-31|Mitsubishi Electric Corp|フラッシュディスクカード|
US5822581A|1995-09-29|1998-10-13|Intel Corporation|Method for CMOS configuration information storage and retrieval in flash|
US6018806A|1995-10-16|2000-01-25|Packard Bell Nec|Method and system for rebooting a computer having corrupted memory using an external jumper|
US6470405B2|1995-10-19|2002-10-22|Rambus Inc.|Protocol for communication with dynamic memory|
US5974576A|1996-05-10|1999-10-26|Sun Microsystems, Inc.|On-line memory monitoring system and methods|
JP3210590B2|1996-11-29|2001-09-17|株式会社日立製作所|マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法|
US6035432A|1997-07-31|2000-03-07|Micron Electronics, Inc.|System for remapping defective memory bit sets|
US5822251A|1997-08-25|1998-10-13|Bit Microsystems, Inc.|Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers|
US6202129B1|1998-03-31|2001-03-13|Intel Corporation|Shared cache structure for temporal and non-temporal information using indicative bits|
US6038166A|1998-04-01|2000-03-14|Invox Technology|High resolution multi-bit-per-cell memory|
US5912839A|1998-06-23|1999-06-15|Energy Conversion Devices, Inc.|Universal memory element and method of programming same|
US6483736B2|1998-11-16|2002-11-19|Matrix Semiconductor, Inc.|Vertically stacked field programmable nonvolatile memory and method of fabrication|
US6326973B1|1998-12-07|2001-12-04|Compaq Computer Corporation|Method and system for allocating AGP/GART memory from the local AGP memory controller in a highly parallel system architecture |
US6345349B1|1998-12-30|2002-02-05|Intel Corporation|Combined memory and mass storage device|
US8341332B2|2003-12-02|2012-12-25|Super Talent Electronics, Inc.|Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices|
US6868472B1|1999-10-01|2005-03-15|Fujitsu Limited|Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory|
US6292874B1|1999-10-19|2001-09-18|Advanced Technology Materials, Inc.|Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges|
US6567897B2|2001-03-01|2003-05-20|International Business Machines Corporation|Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls|
US7058779B1|2001-03-05|2006-06-06|Advanced Micro Devices, Inc.|Computer system initialization via boot code stored in a non-volatile memory having an interface compatible with synchronous dynamic random access memory|
US6704840B2|2001-06-19|2004-03-09|Intel Corporation|Computer system and method of computer initialization with caching of option BIOS|
US6804799B2|2001-06-26|2004-10-12|Advanced Micro Devices, Inc.|Using type bits to track storage of ECC and predecode bits in a level two cache|
US7752423B2|2001-06-28|2010-07-06|Intel Corporation|Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor|
US7107386B1|2001-08-08|2006-09-12|Pasternak Solutions, Llc|Memory bus arbitration using memory bank readiness|
US6990577B2|2001-08-10|2006-01-24|Intel Corporation|Updating a BIOS image by replacing a portion of the BIOS image with a portion of another BIOS image|
EP1387274A3|2002-07-31|2004-08-11|Texas Instruments Incorporated|Memory management for local variables|
FI20021620A|2002-09-10|2004-03-11|Nokia Corp|Muistirakenne, järjestelmä ja elektroniikkalaite sekä menetelmä muistipiirin yhteydessä|
DE60306488D1|2003-02-27|2006-08-10|St Microelectronics Srl|Eingebautes Testverfahren in einem Flash Speicher|
US20050010811A1|2003-06-16|2005-01-13|Zimmer Vincent J.|Method and system to support network port authentication from out-of-band firmware|
US7836248B2|2003-07-29|2010-11-16|International Business Machines Corporation|Methods and systems for managing persistent storage of small data objects|
US7165170B2|2003-09-12|2007-01-16|Intel Corporation|System and method for firmware to export pre-boot data into the operating system runtime environment|
US20050120265A1|2003-12-02|2005-06-02|Pline Steven L.|Data storage system with error correction code and replaceable defective memory|
US7475174B2|2004-03-17|2009-01-06|Super Talent Electronics, Inc.|Flash / phase-change memory in multi-ring topology using serial-link packet interface|
US20050223157A1|2004-04-02|2005-10-06|Matti Floman|Fast non-volatile random access memory in electronic devices|
US7889544B2|2004-04-05|2011-02-15|Super Talent Electronics, Inc.|High-speed controller for phase-change memory peripheral device|
US7269708B2|2004-04-20|2007-09-11|Rambus Inc.|Memory controller for non-homogenous memory system|
US20050251617A1|2004-05-07|2005-11-10|Sinclair Alan W|Hybrid non-volatile memory system|
US20050273584A1|2004-06-07|2005-12-08|Wisecup George D|Locating environment variables in non-volatile memory|
US7590918B2|2004-09-10|2009-09-15|Ovonyx, Inc.|Using a phase change memory as a high volume memory|
US7475190B2|2004-10-08|2009-01-06|International Business Machines Corporation|Direct access of cache lock set data without backing memory|
US20060184719A1|2005-02-16|2006-08-17|Sinclair Alan W|Direct data file storage implementation techniques in flash memories|
US7457928B2|2005-10-28|2008-11-25|International Business Machines Corporation|Mirroring system memory in non-volatile random access memory for fast power on/off cycling|
US8637342B2|2005-11-10|2014-01-28|Ovonyx, Inc.|Phase change memory with threshold switch select device|
US7600078B1|2006-03-29|2009-10-06|Intel Corporation|Speculatively performing read transactions|
US7913147B2|2006-05-08|2011-03-22|Intel Corporation|Method and apparatus for scrubbing memory|
CN101512661B|2006-05-12|2013-04-24|苹果公司|用于存储设备的失真估计与纠错编码的组合|
JP4700562B2|2006-05-18|2011-06-15|株式会社バッファロー|データ記憶装置およびデータ記憶方法|
US7930468B2|2006-05-23|2011-04-19|Dataram, Inc.|System for reading and writing on flash memory device having plural microprocessors|
EP1870814B1|2006-06-19|2014-08-13|Texas Instruments France|Method and apparatus for secure demand paging for processor devices|
US7756053B2|2006-06-30|2010-07-13|Intel Corporation|Memory agent with error hardware|
US7478197B2|2006-07-18|2009-01-13|International Business Machines Corporation|Adaptive mechanisms for supplying volatile data copies in multiprocessor systems|
US7493439B2|2006-08-01|2009-02-17|International Business Machines Corporation|Systems and methods for providing performance monitoring in a memory system|
US7587559B2|2006-08-10|2009-09-08|International Business Machines Corporation|Systems and methods for memory module power management|
WO2008040028A2|2006-09-28|2008-04-03|Virident Systems, Inc.|Systems, methods, and apparatus with programmable memory control for heterogeneous main memory|
US7555605B2|2006-09-28|2009-06-30|Freescale Semiconductor, Inc.|Data processing system having cache memory debugging support and method therefor|
US7636832B2|2006-10-26|2009-12-22|Intel Corporation|I/O translation lookaside buffer performance|
US8683139B2|2006-10-31|2014-03-25|Hewlett-Packard Development Company, L.P.|Cache and method for cache bypass functionality|
WO2008055269A2|2006-11-04|2008-05-08|Virident Systems, Inc.|Asymmetric memory migration in hybrid main memory|
US20080140724A1|2006-12-06|2008-06-12|David Flynn|Apparatus, system, and method for servicing object requests within a storage controller|
US7554855B2|2006-12-20|2009-06-30|Mosaid Technologies Incorporated|Hybrid solid-state memory system having volatile and non-volatile memory|
US7617340B2|2007-01-09|2009-11-10|International Business Machines Corporation|I/O adapter LPAR isolation with assigned memory space|
TW200845014A|2007-02-28|2008-11-16|Aplus Flash Technology Inc|A bit line structure for a multilevel, dual-sided nonvolatile memory cell array|
US7725645B2|2007-03-16|2010-05-25|Intel Corporation|Dual use for data valid signal in non-volatile memory|
KR100949877B1|2007-04-10|2010-03-25|주식회사 하이닉스반도체|반도체 패키지|
US8427891B2|2007-04-17|2013-04-23|Rambus Inc.|Hybrid volatile and non-volatile memory device with a shared interface circuit|
US20080270811A1|2007-04-26|2008-10-30|Super Talent Electronics Inc.|Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory|
US8429493B2|2007-05-12|2013-04-23|Apple Inc.|Memory device with internal signap processing unit|
US7975109B2|2007-05-30|2011-07-05|Schooner Information Technology, Inc.|System including a fine-grained memory and a less-fine-grained memory|
WO2008150927A2|2007-05-30|2008-12-11|Schooner Information Technology|System including a fine-grained memory and a less-fine-grained memory|
US8296534B1|2007-06-29|2012-10-23|Emc Corporation|Techniques for using flash-based memory in recovery processing|
TWI327319B|2007-07-03|2010-07-11|Macronix Int Co Ltd|Double programming methods of a multi-level-cell nonvolatile memory|
KR101498673B1|2007-08-14|2015-03-09|삼성전자주식회사|반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템|
US8145893B2|2007-10-26|2012-03-27|Intel Corporation|Hot-plugging a memory device|
US8239665B2|2007-10-31|2012-08-07|Dell Products L.P.|Methods, systems and media for configuring boot options|
US8108609B2|2007-12-04|2012-01-31|International Business Machines Corporation|Structure for implementing dynamic refresh protocols for DRAM based cache|
US8185685B2|2007-12-14|2012-05-22|Hitachi Global Storage Technologies Netherlands B.V.|NAND flash module replacement for DRAM module|
KR101472967B1|2007-12-14|2014-12-16|삼성전자주식회사|라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템|
EP2077559B1|2007-12-27|2012-11-07|Hagiwara Solutions Co., Ltd.|Refresh method of a flash memory|
US7882341B2|2007-12-31|2011-02-01|Intel Corporation|System and method to enable parallelization of early platform initialization|
US8825965B2|2008-01-08|2014-09-02|Cisco Technology, Inc.|System and methods for memory expansion|
US8275945B2|2008-02-05|2012-09-25|Spansion Llc|Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer|
TWI373768B|2008-02-05|2012-10-01|Phison Electronics Corp|System, controller and method for data storage|
JP5163220B2|2008-03-26|2013-03-13|富士通株式会社|キャッシュ制御装置、情報処理装置|
US7663957B2|2008-05-27|2010-02-16|Via Technologies, Inc.|Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor|
US20090313416A1|2008-06-16|2009-12-17|George Wayne Nation|Computer main memory incorporating volatile and non-volatile memory|
US8166229B2|2008-06-30|2012-04-24|Intel Corporation|Apparatus and method for multi-level cache utilization|
US20090327837A1|2008-06-30|2009-12-31|Robert Royer|NAND error management|
CN102150147A|2008-07-03|2011-08-10|惠普开发有限公司|存储器服务器|
US8176233B1|2008-07-17|2012-05-08|Virident Systems Inc.|Using non-volatile memory resources to enable a virtual buffer pool for a database application|
JP5581577B2|2008-08-29|2014-09-03|富士通株式会社|データ処理装置|
US20110197018A1|2008-10-06|2011-08-11|Sam Hyuk Noh|Method and system for perpetual computing using non-volatile random access memory|
US9152569B2|2008-11-04|2015-10-06|International Business Machines Corporation|Non-uniform cache architecture |
KR101001147B1|2008-12-12|2010-12-17|주식회사 하이닉스반도체|상변화 메모리 장치|
KR101573047B1|2009-01-23|2015-12-02|삼성전자주식회사|복합 메모리 장치 및 이를 이용한 i/o 처리 방법|
KR20100091544A|2009-02-10|2010-08-19|삼성전자주식회사|메모리 시스템 및 그 마모도 관리 방법|
US8375241B2|2009-04-02|2013-02-12|Intel Corporation|Method and system to improve the operations of a registered memory module|
US8103822B2|2009-04-26|2012-01-24|Sandisk Il Ltd.|Method and apparatus for implementing a caching policy for non-volatile memory|
US8331857B2|2009-05-13|2012-12-11|Micron Technology, Inc.|Wireless interface to program phase-change memories|
US8250282B2|2009-05-14|2012-08-21|Micron Technology, Inc.|PCM memories for storage bus interfaces|
US8180981B2|2009-05-15|2012-05-15|Oracle America, Inc.|Cache coherent support for flash in a memory hierarchy|
US8504759B2|2009-05-26|2013-08-06|Micron Technology, Inc.|Method and devices for controlling power loss|
US20100306453A1|2009-06-02|2010-12-02|Edward Doller|Method for operating a portion of an executable program in an executable non-volatile memory|
US8159881B2|2009-06-03|2012-04-17|Marvell World Trade Ltd.|Reference voltage optimization for flash memory|
US9123409B2|2009-06-11|2015-09-01|Micron Technology, Inc.|Memory device for a hierarchical memory architecture|
US7898859B2|2009-06-15|2011-03-01|Micron Technology, Inc.|Use of emerging non-volatile memory elements with flash memory|
US9208084B2|2009-06-29|2015-12-08|Oracle America, Inc.|Extended main memory hierarchy having flash memory for page fault handling|
JP2011022657A|2009-07-13|2011-02-03|Fujitsu Ltd|メモリシステムおよび情報処理装置|
US8626997B2|2009-07-16|2014-01-07|Micron Technology, Inc.|Phase change memory in a dual inline memory module|
CN102473140B|2009-07-17|2015-05-13|株式会社东芝|存储器管理装置|
US8341387B2|2009-08-18|2012-12-25|Dell Products, Lp|System and method to manipulate a system setting when booting an information handling system|
US8249099B2|2009-08-27|2012-08-21|Texas Instruments Incorporated|External memory data management with data regrouping and channel look ahead|
US20110060869A1|2009-09-08|2011-03-10|Ocz Technology Group, Inc.|Large capacity solid-state storage devices and methods therefor|
KR20110029402A|2009-09-15|2011-03-23|삼성전자주식회사|비휘발성 메모리 장치, 및 그것을 포함한 메모리 시스템, 그것의 쓰기 전류 제어 방법|
US8234447B2|2009-10-09|2012-07-31|Hitachi, Ltd.|Storage control device for storage system provided with storage device coupled to switch network|
CN101694640B|2009-10-22|2011-04-27|浙江大学|多核架构下共享二级Cache的替换策略的实现方法|
JP2011108306A|2009-11-16|2011-06-02|Sony Corp|不揮発性メモリおよびメモリシステム|
US8230172B2|2009-12-03|2012-07-24|Intel Corporation|Gather and scatter operations in multi-level memory hierarchy|
US8489803B2|2009-12-14|2013-07-16|Smsc Holdings S.A.R.L.|Efficient use of flash memory in flash drives|
WO2011075167A1|2009-12-15|2011-06-23|Memoir Systems,Inc.|System and method for reduced latency caching|
US8806231B2|2009-12-22|2014-08-12|Intel Corporation|Operating system independent network event handling|
US8914568B2|2009-12-23|2014-12-16|Intel Corporation|Hybrid memory architectures|
US8612809B2|2009-12-31|2013-12-17|Intel Corporation|Systems, methods, and apparatuses for stacked memory|
US8838906B2|2010-01-08|2014-09-16|International Business Machines Corporation|Evict on write, a management strategy for a prefetch unit and/or first level cache in a multiprocessor system with speculative execution|
US20110197031A1|2010-02-05|2011-08-11|Nokia Corporation|Update Handler For Multi-Channel Cache|
US20110208900A1|2010-02-23|2011-08-25|Ocz Technology Group, Inc.|Methods and systems utilizing nonvolatile memory in a computer system main memory|
KR101678911B1|2010-03-12|2016-11-23|삼성전자주식회사|데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템|
JP2011198091A|2010-03-19|2011-10-06|Toshiba Corp|仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム|
KR20110131781A|2010-05-31|2011-12-07|삼성전자주식회사|위치정보의 정확도 확인방법 및 장치|
GB201011146D0|2010-07-02|2010-08-18|Vodafone Ip Licensing Ltd|Mobile computing device|
US8649212B2|2010-09-24|2014-02-11|Intel Corporation|Method, apparatus and system to determine access information for a phase change memory|
US8838935B2|2010-09-24|2014-09-16|Intel Corporation|Apparatus, method, and system for implementing micro page tables|
US8612676B2|2010-12-22|2013-12-17|Intel Corporation|Two-level system main memory|
US20120221785A1|2011-02-28|2012-08-30|Jaewoong Chung|Polymorphic Stacked DRAM Memory Architecture|
US8462577B2|2011-03-18|2013-06-11|Intel Corporation|Single transistor driver for address lines in a phase change memory and switch array|
US8462537B2|2011-03-21|2013-06-11|Intel Corporation|Method and apparatus to reset a phase change memory and switch memory cell|
US8935484B2|2011-03-31|2015-01-13|Hewlett-Packard Development Company, L.P.|Write-absorbing buffer for non-volatile memory|
KR20120119092A|2011-04-20|2012-10-30|삼성전자주식회사|반도체 메모리 시스템 및 이의 구동 방법|
US8607089B2|2011-05-19|2013-12-10|Intel Corporation|Interface for storage device access over memory bus|
US20120311262A1|2011-06-01|2012-12-06|International Business Machines Corporation|Memory cell presetting for improved memory performance|
CN102209262B|2011-06-03|2017-03-22|中兴通讯股份有限公司|一种内容调度的方法、装置和系统|
US20120324195A1|2011-06-14|2012-12-20|Alexander Rabinovitch|Allocation of preset cache lines|
US20120324156A1|2011-06-17|2012-12-20|Naveen Muralimanohar|Method and system of organizing a heterogeneous memory architecture|
US8605531B2|2011-06-20|2013-12-10|Intel Corporation|Fast verify for phase change memory with switch|
US8767482B2|2011-08-18|2014-07-01|Micron Technology, Inc.|Apparatuses, devices and methods for sensing a snapback event in a circuit|
US8639918B2|2011-08-31|2014-01-28|Dell Products L.P.|Memory compatibility system and method|
WO2013048470A1|2011-09-30|2013-04-04|Intel Corporation|Statistical wear leveling for non-volatile system memory|
US20150089102A1|2013-09-23|2015-03-26|Lsi Corporation|Solid state drives that cache boot data|
US9690491B2|2014-12-17|2017-06-27|Sandisk Technologies Llc|System and method for managing data in a memory device|JP5520747B2|2010-08-25|2014-06-11|株式会社日立製作所|キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体|
CN107391397B|2011-09-30|2021-07-27|英特尔公司|支持近存储器和远存储器访问的存储器通道|
WO2013095465A1|2011-12-21|2013-06-27|Intel Corporation|High-performance storage structures and systems featuring multiple non-volatile memories|
DE112011106032T5|2011-12-22|2014-12-04|Intel Corporation|Energieeinsparung durch Speicherkanal-Abschaltung|
WO2013101209A1|2011-12-30|2013-07-04|Intel Corporation|Thin translation for system access of non volatile semicondcutor storage as random access memory|
US9418700B2|2012-06-29|2016-08-16|Intel Corporation|Bad block management mechanism|
US9477591B2|2012-07-06|2016-10-25|Seagate Technology Llc|Memory access requests in hybrid memory system|
US9104578B2|2012-07-06|2015-08-11|Seagate Technology Llc|Defining address ranges used to cache speculative read data|
US9390020B2|2012-07-06|2016-07-12|Seagate Technology Llc|Hybrid memory with associative cache|
US9529724B2|2012-07-06|2016-12-27|Seagate Technology Llc|Layered architecture for hybrid controller|
US9772948B2|2012-07-06|2017-09-26|Seagate Technology Llc|Determining a criterion for movement of data from a primary cache to a secondary cache|
US9594685B2|2012-07-06|2017-03-14|Seagate Technology Llc|Criteria for selection of data for a secondary cache|
US9424198B2|2012-11-30|2016-08-23|Intel Corporation|Method, system and apparatus including logic to manage multiple memories as a unified exclusive memory|
WO2014092698A1|2012-12-11|2014-06-19|Hewlett-Packard Development Company|Application server to nvram path|
US9075952B2|2013-01-17|2015-07-07|Intel Corporation|Controlling bandwidth allocations in a system on a chip |
CN103970219B|2013-01-30|2018-03-20|鸿富锦精密电子有限公司|存储设备及支持所述存储设备的主板|
US9547594B2|2013-03-15|2017-01-17|Intel Corporation|Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage|
US9785564B2|2013-08-20|2017-10-10|Seagate Technology Llc|Hybrid memory with associative cache|
US9507719B2|2013-08-20|2016-11-29|Seagate Technology Llc|Garbage collection in hybrid memory system|
US9367247B2|2013-08-20|2016-06-14|Seagate Technology Llc|Memory access requests in hybrid memory system|
WO2015047314A1|2013-09-27|2015-04-02|Intel Corporation|Techniques to compose memory resources across devices|
US9304941B2|2014-02-27|2016-04-05|Mangstor, Inc.|Self-encrypting flash drive|
GB2524063B|2014-03-13|2020-07-01|Advanced Risc Mach Ltd|Data processing apparatus for executing an access instruction for N threads|
US10235103B2|2014-04-24|2019-03-19|Xitore, Inc.|Apparatus, system, and method of byte addressable and block addressable storage and retrival of data to and from non-volatile storage memory|
GB2529148B|2014-08-04|2020-05-27|Advanced Risc Mach Ltd|Write operations to non-volatile memory|
US10318153B2|2014-12-19|2019-06-11|Advanced Micro Devices, Inc.|Techniques for changing management modes of multilevel memory hierarchy|
US9658963B2|2014-12-23|2017-05-23|Intel Corporation|Speculative reads in buffered memory|
US9851919B2|2014-12-31|2017-12-26|Netapp, Inc.|Method for data placement in a memory based file system|
US20160224252A1|2015-01-30|2016-08-04|Intel Corporation|Hybrid memory architecture|
EP3254287A4|2015-02-06|2018-08-08|Micron Technology, INC.|Apparatuses and methods for memory device as a store for program instructions|
US9619396B2|2015-03-27|2017-04-11|Intel Corporation|Two level memory full line writes|
US9547361B2|2015-04-29|2017-01-17|Qualcomm Incorporated|Methods and apparatuses for memory power reduction|
US10073659B2|2015-06-26|2018-09-11|Intel Corporation|Power management circuit with per activity weighting and multiple throttle down thresholds|
US10387259B2|2015-06-26|2019-08-20|Intel Corporation|Instant restart in non volatile system memory computing systems with embedded programmable data checking|
JP6403162B2|2015-07-23|2018-10-10|東芝メモリ株式会社|メモリシステム|
CN106528491A|2015-09-11|2017-03-22|展讯通信(上海)有限公司|移动终端|
US10108549B2|2015-09-23|2018-10-23|Intel Corporation|Method and apparatus for pre-fetching data in a system having a multi-level system memory|
US10261901B2|2015-09-25|2019-04-16|Intel Corporation|Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory|
US10185501B2|2015-09-25|2019-01-22|Intel Corporation|Method and apparatus for pinning memory pages in a multi-level system memory|
WO2017058494A1|2015-10-01|2017-04-06|Rambus Inc.|Memory system with cached memory module operations|
US20170109067A1|2015-10-16|2017-04-20|SK Hynix Inc.|Memory system|
US20170109066A1|2015-10-16|2017-04-20|SK Hynix Inc.|Memory system|
US20170109068A1|2015-10-16|2017-04-20|SK Hynix Inc.|Memory system|
US9792224B2|2015-10-23|2017-10-17|Intel Corporation|Reducing latency by persisting data relationships in relation to corresponding data in persistent memory|
CN105404673B|2015-11-19|2018-11-09|清华大学|基于nvram的高效文件系统构建方法|
KR20170058699A|2015-11-19|2017-05-29|삼성전자주식회사|불휘발성 메모리 모듈 및 이를 포함하는 전자 장치|
US10033411B2|2015-11-20|2018-07-24|Intel Corporation|Adjustable error protection for stored data|
US10303372B2|2015-12-01|2019-05-28|Samsung Electronics Co., Ltd.|Nonvolatile memory device and operation method thereof|
US20170177482A1|2015-12-18|2017-06-22|Intel Corporation|Computing system having multi-level system memory capable of operating in a single level system memory mode|
US10437731B2|2015-12-24|2019-10-08|Intel Corporation|Multi-level non-volatile cache with selective store|
KR20170079427A|2015-12-30|2017-07-10|삼성전자주식회사|불휘발성 메모리 모듈을 포함하는 메모리 시스템 및 전자 장치|
US20170288705A1|2016-04-05|2017-10-05|Alibaba Group Holding Limited|Shared memory with enhanced error correction|
US10157134B2|2016-04-11|2018-12-18|International Business Machines Corporation|Decreasing the data handoff interval for a reserved cache line based on an early indication of a systemwide coherence response|
US20170329711A1|2016-05-13|2017-11-16|Intel Corporation|Interleaved cache controllers with shared metadata and related devices and systems|
CN113515471A|2016-06-14|2021-10-19|伊姆西Ip控股有限责任公司|用于管理存储系统的方法和装置|
US10120806B2|2016-06-27|2018-11-06|Intel Corporation|Multi-level system memory with near memory scrubbing based on predicted far memory idle time|
US20180004660A1|2016-06-30|2018-01-04|Microsoft Technology Licensing, Llc|Direct store to coherence point|
DE112016007029T5|2016-07-01|2019-03-28|Intel Corporation|Vorrichtung und verfahren zum verwalten einer speicherseitigen cache-räumung|
US10402110B2|2016-08-04|2019-09-03|Rambus Inc.|Adjustable access energy and access latency memory system and devices|
US9971691B2|2016-09-12|2018-05-15|Intel Corporation|Selevtive application of interleave based on type of data to be stored in memory|
JP2018049385A|2016-09-20|2018-03-29|東芝メモリ株式会社|メモリシステムおよびプロセッサシステム|
US10847196B2|2016-10-31|2020-11-24|Rambus Inc.|Hybrid memory module|
US10915453B2|2016-12-29|2021-02-09|Intel Corporation|Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures|
US10445261B2|2016-12-30|2019-10-15|Intel Corporation|System memory having point-to-point link that transports compressed traffic|
US10114795B2|2016-12-30|2018-10-30|Western Digital Technologies, Inc.|Processor in non-volatile storage memory|
JP2018156573A|2017-03-21|2018-10-04|東芝メモリ株式会社|メモリ装置および情報処理システム|
US11175853B2|2017-05-09|2021-11-16|Samsung Electronics Co., Ltd.|Systems and methods for write and flush support in hybrid memory|
US10304814B2|2017-06-30|2019-05-28|Intel Corporation|I/O layout footprint for multiple 1LM/2LM configurations|
US11188467B2|2017-09-28|2021-11-30|Intel Corporation|Multi-level system memory with near memory capable of storing compressed cache lines|
US10860474B2|2017-12-14|2020-12-08|Micron Technology, Inc.|Multilevel addressing|
US10860244B2|2017-12-26|2020-12-08|Intel Corporation|Method and apparatus for multi-level memory early page demotion|
US10891228B2|2018-02-12|2021-01-12|International Business Machines Corporation|Cache line states identifying memory cache|
US20190042451A1|2018-02-20|2019-02-07|Intel Corporation|Efficient usage of bandwidth of devices in cache applications|
US11099995B2|2018-03-28|2021-08-24|Intel Corporation|Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory|
US20190042423A1|2018-04-19|2019-02-07|Intel Corporation|Data center environment with customizable software caching levels|
US10929033B2|2018-04-25|2021-02-23|Micron Technology, Inc.|Allocating variable media types of memory devices in a memory system|
KR20190131686A|2018-05-17|2019-11-27|에스케이하이닉스 주식회사|데이터 연산을 수행할 수 있는 다양한 메모리 장치를 포함하는 반도체 시스템|
CN109117088B|2018-07-24|2021-02-19|联想有限公司|一种数据处理方法及系统|
CN112513821A|2018-08-01|2021-03-16|华为技术有限公司|用于scm应用的多实例2lm架构|
US11249918B2|2018-10-30|2022-02-15|Hewlett Packard Enterprise Development Lp|Mapping entry invalidation|
US10847198B2|2018-11-01|2020-11-24|Spin Memory, Inc.|Memory system utilizing heterogeneous magnetic tunnel junction types in a single chip|
US10971681B2|2018-12-05|2021-04-06|Spin Memory, Inc.|Method for manufacturing a data recording system utilizing heterogeneous magnetic tunnel junction types in a single chip|
US10831658B2|2019-01-03|2020-11-10|Intel Corporation|Read-with-invalidate modified data in a cache line in a cache memory|
US11055228B2|2019-01-31|2021-07-06|Intel Corporation|Caching bypass mechanism for a multi-level memory|
US11163490B2|2019-09-17|2021-11-02|Micron Technology, Inc.|Programmable engine for data movement|
US20210081318A1|2019-09-17|2021-03-18|Micron Technology, Inc.|Flexible provisioning of multi-tier memory|
US11036412B2|2019-09-27|2021-06-15|Intel Corporation|Dynamically changing between latency-focused read operation and bandwidth-focused read operation|
US11163700B1|2020-04-30|2021-11-02|International Business Machines Corporation|Initiating interconnect operation without waiting on lower level cache directory lookup|
CN112885867B|2021-01-29|2021-11-09|长江先进存储产业创新中心有限责任公司|中央处理器的制造方法、中央处理器及其控制方法|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
PCT/US2011/054444|WO2013048503A1|2011-09-30|2011-09-30|Apparatus and method for implementing a multi-level memory hierarchy having different operating modes|
[返回顶部]